frame_quality — ASTROSTACK quality op

• 数据种类:image2d → table

• 调用: import fullseye as fs; fs.ledger.frame_quality(image, threshold_sigma=5.0, max_stars=25, min_separation=3, psf_box=11, n_score_stars=5)(要直接调用实现,import astrostack; astrostack.frame_quality(image, threshold_sigma=5.0, max_stars=25, min_separation=3, psf_box=11, n_score_stars=5);从台账取用则 opsastrostack.get("frame_quality"))

用法

给单帧打分 —— 锐度、FWHM、背景、圆度,以及用于筛选的分数。

lucky imaging 的筛选标准在历史上是“参考星的峰值强度” (Law, Mackay & Baldwin, *Lucky imaging: high angular resolution imaging in the visible from the ground*, A&A 446, 739 (2006))—— 大气越好的瞬间,同样的总通量就越集中在更少的像素上,所以 峰值 / 总通量 会上升。这里也采用它,并乘以圆度来剔除跟踪拖长::

score = median(roundness) * median(peak_fraction)

peak_fraction 是对亮度最高的 n_score_stars 颗星求 (峰值像素 - 背景) / 孔径通量。与尺度无关(改变曝光时间或增益也不变),所以可以直接用于帧间比较。

sharpness 则另外是把拉普拉斯的方差除以图像方差的经典对焦指标(Pech-Pacheco et al., *Diatom autofocusing in brightfield microscopy*, ICPR 2000)。星数一变它就变,所以不用于筛选,但它是即使在一颗星也没有的帧上也能给出值的唯一指标,因此保留。

Returns dict(table 词汇)。键为 n_stars / background / noise_sigma / fwhm_px(检出星的 FWHM 中位数)/ roundness / peak_fraction / peak_snr / sharpness / score / total_flux。一颗星也没有时,源自星的值为 nan,score 为 0.0(“不选”才是正确答案,所以不让 nan 破坏排序)。

Raises ValueError:不是 2-D / 含非有限值 / *n_score_stars* 小于 1 时。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• astro_stacking — py -3.11 examples/astro_stacking.py

类型可衔接的下一个算子(可接受 table 作为输入)

—

同类别(quality)

lucky_select · noise_sigma


*Provenance: astrostack.py — ASTROSTACK 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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