region op• Datenarten: region → image
• Aufruf: fullseye.apply(img, "dist_transform", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])
• HALCON-Äquivalent: distance_transform (Bedeutung und Parameter sind in der HALCON-Referenz nachzulesen)
• GPU: ja (mechanischer GPU-Pfad aus der Allow-List, CuPy). device="auto" wählt die GPU ab der gemessenen Größe (4,194,304 Pixel)

*Die Abbildung ist die tatsächliche Ausgabe auf einer synthetischen 128×128-Eingabe. Links Eingabe, rechts Ausgabe. Punktwolken als Draufsicht-Streudiagramm (Helligkeit = z), 1-D-Reihen als Linie, Volumen als Maximum-Projektion entlang z, Videos als mittleres Bild, komplexe Bilder als Betrag; Rückgabewerte, die kein Bild ergeben, werden als Werte gezeigt.*
*Die Ausgabe ist in einer viridis-artigen Falschfarbe dargestellt (dunkles Violett = klein, Gelb = groß), damit ein Feld von Größen — Abstand, Phase, Orientierung, Tiefe — lesbar ist.*
*Regler a ändert die Ausgabe nicht (gemessen: identisch bei 0,1 / 0,5 / 0,9).*
*Regler b ändert die Ausgabe nicht (gemessen: identisch bei 0,1 / 0,5 / 0,9).*
Stufen (die vorangehenden Ops → dieser Op, von links nach rechts):
▸ dist_transform: Stufen (Doku-Website)
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ dist_transform: andere Eingaben (Doku-Website)
Euklidische Distanztransformation. Entspricht HALCONs distance_transform (Compute the distance transformation of a region.).
a, b werden nicht verwendet. Für jedes Vordergrundpixel wird der euklidische Abstand zum nächsten Hintergrundpixel berechnet (scipy.ndimage.distance_transform_edt) und mit _norm so normiert, dass das Maximum innerhalb dieses Bildes 1 wird (absolute Abstände lassen sich zwischen Bildern nicht vergleichen). Dient als Vorverarbeitung für Skelettierung, Erkennung von Kornmittelpunkten usw.
Gibt es kein einziges Hintergrundpixel (das ganze Bild ist Vordergrund), liegt der nächste Hintergrund nicht im Bild —— jedes Pixel ist „unendlich weit entfernt“, daher ist die normierte Antwort überall 1.0 (wie bei xsp_chamfer_dist / cv_dist). Bis 2026-11-05 (adversariale Prüfung, Runde 2, P4) lieferte distance_transform_edt eine Rampe, als läge bei (-1, 0) außerhalb des Bildes Hintergrund, und die Werte änderten sich bei einer Links-Rechts-Spiegelung. Ohne Vordergrund 0.
Löst aus:
FsValueError: Das Bild enthält NaN / inf.
• Leitfaden zur Familie gallery2d_region
• 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.
Das Programm unten ist nachweislich lauffähig (gleiche Eingabe wie die Abbildung). In der Studio-Hilfe wird dieser Block zu Schaltflächen, die es sofort laden und ausführen.
threshold 0.50 0.50 dist_transform 0.50 0.50
▸ Diese Pipeline laden · Laden & ausführen
• gallery2d_region — py -3.11 examples/gallery2d_region.py
• poc_bone_trabecular_thickness — py -3.11 examples/poc_bone_trabecular_thickness.py
image als Eingabe)identity · gaussian · mean_box · mean_box_wh · bilateral · kuwahara · unsharp · median
region)reg_erode · reg_dilate · reg_open · reg_close · fill_holes · select_largest · remove_small · invert_region
*Provenance: ops.py — 2D 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.