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。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• 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
keypoints 作为输入)photometry)*Provenance: astrostack.py — ASTROSTACK 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.