star_detect — ASTROSTACK photometry op

• データ種: image2d → keypoints

• 呼び出し: import fullseye as fs; fs.ledger.star_detect(image, threshold_sigma=5.0, min_separation=3, max_stars=200, edge_margin=None, centroid_box=None, method='mad') (実装を直接呼ぶなら import astrostack; astrostack.star_detect(image, threshold_sigma=5.0, min_separation=3, max_stars=200, edge_margin=None, centroid_box=None, method='mad')、台帳から引くなら opsastrostack.get("star_detect"))

使い方

星を検出して (row, col) の重心列を返す。

背景と雑音を noise_sigma と同じ頑健推定で出し、background + threshold_sigma * sigma を超える局所最大を拾う(最大値フィルタとの一致で判定するので、min_separation 画素以内に 2 つは出ない)。中心はしきい値の画素位置ではなく、centroid_box (既定 2*min_separation+1)の窓で背景を引いた強度で重み付けした重心 —— これが副画素の位置精度を出す唯一の理由で、連結成分の重心(detect.segment_objects)は硬いしきい値の分だけ明るさに依存して偏る。

明るい順に並べて max_stars 個で打ち切る。縁から edge_margin (既定 centroid_box // 2)より内側の星だけを返す —— 窓が画像からはみ出す星は重心が縁側へ引っ張られるので、黙って偏った値を返すより落とす。

Returns (N, 2) float64 keypoints。1 個も無ければ (0, 2) (空は正当な答えなので例外にしない —— 星が無い視野は存在する)。

Raises ValueError: 2-D でない / 非有限を含む / *threshold_sigma* が非正 / *min_separation* が 1 未満 / *max_stars* が 1 未満の場合。

★名前は天体だが、中身は分野中立(頑健な背景推定 + kσ 超えの局所最大 + 重心)。点状目標 / 輝点 / スポット / 小さい目標 / 微小欠陥 / 粒子の検出と副画素位置決めに、そのまま使える —— 捜索救難の空撮で漂流物を拾う、蛍光顕微鏡の輝点を数える、といった用途はこれが正解の入口。op_find("輝点 検出") / op_find("点状目標") / op_find("粒子 検出") はこの op を先頭に返す(2026-10-11 実測。op_find("点 検出") は「点」「検出」が多くの op に当たるので上位に来ない)。2026-09-08 にこの段を足すまでは、和文の複数語クエリが検索の作りの都合で 0 件になり、副画素重心つきの座標列を返す 2-D op はこれしか無いのに和文からは辿り着けなかった(poc_search_sweep_width が踏んだ)。領域の重心が要るなら blob_label 系、極大のマスクだけなら sk_local_maxima。

参考(サンプルデータ・文献)

• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。

• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。

• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。

実行できる例(この op を実際に呼ぶ検証済みサンプル)

• astro_stacking — py -3.11 examples/astro_stacking.py

• poc_exoplanet_transit — py -3.11 examples/poc_exoplanet_transit.py

• poc_search_sweep_width — py -3.11 examples/poc_search_sweep_width.py

• poc_star_astrometry — py -3.11 examples/poc_star_astrometry.py

型が繋がる次の op(keypoints を入力に取れる)

psf_fit · aperture_photometry

同カテゴリ(photometry)

psf_fit · aperture_photometry


*Provenance: astrostack.py — ASTROSTACK operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.