frame_quality — ASTROSTACK quality op

• Datenarten: image2d → table

• Aufruf: 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) (die Implementierung direkt: import astrostack; astrostack.frame_quality(image, threshold_sigma=5.0, max_stars=25, min_separation=3, psf_box=11, n_score_stars=5); aus dem Register: opsastrostack.get("frame_quality"))

Verwendung

Bewertet ein Einzelbild — Schärfe, FWHM, Hintergrund, Rundheit und eine Punktzahl für die Auswahl.

Das Auswahlkriterium des Lucky Imaging ist historisch "die Peakintensität eines Referenzsterns" (Law, Mackay & Baldwin, *Lucky imaging: high angular resolution imaging in the visible from the ground*, A&A 446, 739 (2006)) —— je besser die Atmosphäre im jeweiligen Moment, desto stärker sammelt sich derselbe Gesamtfluss auf weniger Pixel, sodass Peak / Gesamtfluss steigt. Das wird auch hier übernommen und mit der Rundheit multipliziert, um Nachführ-Verzerrungen abzuweisen::

score = median(roundness) * median(peak_fraction)

peak_fraction ist für die n_score_stars hellsten Sterne (Peak-Pixel - Hintergrund) / Aperturfluss. Es ist skalenunabhängig (ändert sich nicht bei anderer Belichtungszeit oder Verstärkung), lässt sich also direkt für Vergleiche zwischen Frames verwenden.

sharpness ist davon getrennt das klassische Fokusmaß: Varianz des Laplace-Operators geteilt durch die Bildvarianz (Pech-Pacheco et al., *Diatom autofocusing in brightfield microscopy*, ICPR 2000). Es ändert sich mit der Sternanzahl und wird daher nicht zur Auswahl verwendet, bleibt aber erhalten, weil es das einzige Maß ist, das auch für einen Frame ganz ohne Sterne einen Wert liefert.

Returns dict (table-Vokabular). Schlüssel sind n_stars / background / noise_sigma / fwhm_px (Median-FWHM der detektierten Sterne) / roundness / peak_fraction / peak_snr / sharpness / score / total_flux. Gibt es überhaupt keine Sterne, sind die sternbasierten Werte nan und score ist 0.0 ("nicht auswählen" ist die richtige Antwort, daher darf nan die Sortierung nicht zerstören).

Raises ValueError: nicht 2-D / enthält nicht endliche Werte / *n_score_stars* kleiner als 1.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• astro_stacking — py -3.11 examples/astro_stacking.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

—

Gleiche Kategorie (quality)

lucky_select · noise_sigma


*Provenance: astrostack.py — ASTROSTACK Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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