caliper op• Datenarten: image2d × measurehandle → table
• Aufruf: import fullseye as fs; fs.ledger.fuzzy_measure_pairing(image, measure, sigma=1.0, threshold=0.1, pair_size=None) (die Implementierung direkt: import measuring1d; measuring1d.fuzzy_measure_pairing(image, measure, sigma=1.0, threshold=0.1, pair_size=None); aus dem Register: opsmeasure1d.get("fuzzy_measure_pairing"))
Wählt das Kantenpaar, das am besten zu einem Fuzzy-Kriterium (erwartete Breite pair_size) passt (fuzzy_measure_pairing).
Ablauf: measure_pairs(image, measure, sigma, threshold) liefert Paare benachbarter Kanten unterschiedlicher Polarität; jedes Paar erhält fuzzy_score = exp(-((width - pair_size) / (0.5 pair_size))^2) und wird absteigend nach Score sortiert. Genau die erwartete Breite ergibt 1, eine Abweichung um ±0.5 pair_size ergibt e^-1 ≈ 0.37. Das erste Element ist das am besten passende Paar.
• image: 2-D float (Grauwerte in den Einheiten der Eingabe).
• measure: dict aus gen_measure_rectangle2 / gen_measure_arc.
• sigma: Glättungs-σ des Profils [Abtastwerte]. threshold: minimale |Grauwertdifferenz| der zu übernehmenden Kanten (Bildeinheiten).
• pair_size: erwartete Breite [px]. Bei None weder Sortierung noch Scoring; das Ergebnis von measure_pairs (in Reihenfolge entlang der Messlinie) wird unverändert zurückgegeben. 0 und negative Werte werden nicht validiert (bei 0 wird der Nenner 1e-9, und die Scores aller Paare fallen auf fast 0 oder 1 zusammen).
• Rückgabewert: list von Paar-dicts (Typ table). Jedes dict hat first / second (Abtastindex), width [px], first_point / second_point ((row, col)), first_amplitude / second_amplitude, fuzzy_score. Gibt es nicht einmal 1 Paar, eine leere list (keine Ausnahme).
Soll nach Unter-/Obergrenze der Breite geschnitten werden, dieses Ergebnis selbst nach width filtern (dieses op bildet nur eine Rangfolge, es schließt nicht per Schwellwert aus).
• Leitfaden zur Familie subpixel_measuring
• 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.
• poc_calipers_under_illusion — py -3.11 examples/poc_calipers_under_illusion.py
• poc_dimensional_inspection — py -3.11 examples/poc_dimensional_inspection.py
table als Eingabe)—
caliper)gen_measure_rectangle2 · gen_measure_arc · translate_measure · measure_pos · measure_pairs
*Provenance: measuring1d.py — MEASURE1D 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.