measure op• Datenarten: labels2d → table
• Aufruf: import fullseye as fs; fs.ledger.blob_features(labels: 'Any', spacing: 'float' = 1.0) -> 'dict' (die Implementierung direkt: import blob2d; blob2d.blob_features(labels: 'Any', spacing: 'float' = 1.0) -> 'dict'; aus dem Register: opsblob.get("blob_features"))
Gibt die Formmerkmale jedes Objekts als 1 Array pro Schlüssel zurück.
labels : array_like
Ausgabe von blob_label (Ganzzahlen, Hintergrund 0).
spacing : float
Größe von 1 Pixel [Einheit/px]. Längen werden damit multipliziert, Flächen mit seiner 2. Potenz.
Standard 1.0 = bleibt in Pixeln.
dict
n (Anzahl der Objekte), spacing, units (Zuordnung Merkmal → Einheit) sowie
19 Arrays der Länge n (FEATURE_KEYS). Auch bei 0 Objekten
sind alle Schlüssel mit leeren Arrays vorhanden (der Aufrufer muss nicht verzweigen).
• angle ist die Neigung im Matrixkoordinatensystem (+Spalte → +Zeile ist positiv = auf dem Bildschirm im Uhrzeigersinn).
• major / minor sind die Achslängen der Ellipse mit denselben Momenten 2. Ordnung (4 sqrt(lambda)). Es ist nicht die umschließende Ausdehnung der Pixelanordnung, daher fällt sie bei einem Quadrat etwas länger als die Seitenlänge aus -- das entspricht der Definition und ist kein Fehler.
• circularity ist 4 pi A / P^2. HALCONs circularity ist "Fläche / Fläche des Kreises mit dem entferntesten Punkt als Radius", also etwas anderes; beim Abgleich von Werten die Definition prüfen.
• Bei Objekten mit touches_border True sind Fläche und Umfang um den abgeschnittenen Teil kleiner. Vor dem Zählen verwerfen oder die Ground-Truth-Seite nach derselben Konvention zählen.
>>> import numpy as np
>>> m = np.zeros((20, 20), bool); m[4:14, 4:9] = True
>>> f = blob_features(blob_label(m))
>>> int(f["n"]), float(f["area"][0])
(1, 50.0)
• Leitfaden zur Familie blob_analysis
• 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_am_thermal_to_ct — py -3.11 examples/poc_am_thermal_to_ct.py
• poc_bone_trabecular_thickness — py -3.11 examples/poc_bone_trabecular_thickness.py
• poc_bump_coplanarity — py -3.11 examples/poc_bump_coplanarity.py
• poc_fresco_craquelure — py -3.11 examples/poc_fresco_craquelure.py
• poc_gear_tooth_metrology — py -3.11 examples/poc_gear_tooth_metrology.py
• poc_leaf_disease_area — py -3.11 examples/poc_leaf_disease_area.py
• poc_metal_grain_size — py -3.11 examples/poc_metal_grain_size.py
• poc_nuclei_ploidy — py -3.11 examples/poc_nuclei_ploidy.py
• poc_particle_sizing — py -3.11 examples/poc_particle_sizing.py
• poc_particle_tracking — py -3.11 examples/poc_particle_tracking.py
• poc_peg_insertion_tactile — py -3.11 examples/poc_peg_insertion_tactile.py
• poc_print_warpage_risk — py -3.11 examples/poc_print_warpage_risk.py
• poc_pv_thermal_survey — py -3.11 examples/poc_pv_thermal_survey.py
• poc_real_coin_metrology — py -3.11 examples/poc_real_coin_metrology.py
• poc_rotation_invariance_audit — py -3.11 examples/poc_rotation_invariance_audit.py
• poc_sea_ice_concentration — py -3.11 examples/poc_sea_ice_concentration.py
• poc_solar_el_inspection — py -3.11 examples/poc_solar_el_inspection.py
• poc_solder_fillet_aoi — py -3.11 examples/poc_solder_fillet_aoi.py
• poc_traffic_counting — py -3.11 examples/poc_traffic_counting.py
• poc_vessel_network — py -3.11 examples/poc_vessel_network.py
• poc_weld_radiograph_porosity — py -3.11 examples/poc_weld_radiograph_porosity.py
• poc_wound_area_tracking — py -3.11 examples/poc_wound_area_tracking.py
table als Eingabe)—
measure)—
*Provenance: blob2d.py — BLOB 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.