contour op• Datenarten: image → contour
• Aufruf: fullseye.apply(img, "edges_sub_pix", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])
• HALCON-Äquivalent: edges_sub_pix (Bedeutung und Parameter sind in der HALCON-Referenz nachzulesen)
• GPU: nein (nur CPU-Referenzimplementierung)

*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.*
Regler a durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):
▸ edges_sub_pix: Regler a durchfahren (Doku-Website)
*Regler b ändert die Ausgabe nicht (gemessen: identisch bei 0,1 / 0,5 / 0,9).*
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ edges_sub_pix: andere Eingaben (Doku-Website)
*Die 4. Spalte ist eine Farb-Eingabe (H,W,3). Dieser Op verarbeitet Farbe, ohne Kanäle zu vermischen (er faltet den Farbkanal nicht als dritte Raumachse).*
Subpixelgenaue Extraktion von Kantenkonturen. Berechnet den Gradienten und seine Normalenrichtung (gradient_normals), dünnt per Non-Maximum-Suppression (wie bei Canny: nur Pixel, die stärker als beide Nachbarn entlang der Normalen sind) auf ein Pixel aus, verbindet die Pixel über der Schwelle (0.15+0.5*a, auf den maximalen Gradienten normierte Stärke) zu entlang der Kurve geordneten Konturen (an Verzweigungen in getrennte Konturen geteilt, eine geschlossene Kante wird an ihrem Startpunkt geschlossen) und verfeinert jeden Punkt entlang der Normalen per Parabelanpassung auf Subpixelposition (subpixel_refine_edges, eine mit dem gleichnamigen Op auf der ops-Seite geteilte Implementierung -- erst ein Fix vom 2026-09-02 machte sie wirklich subpixelgenau; die alte Implementierung gab ganzzahlige Pixelkoordinaten zurück). Entspricht HALCONs edges_sub_pix (Extract sub-pixel precise edges using Deriche, Lanser, Shen, or Canny filters.).
Die Punkte jeder Kontur liegen in Reihenfolge entlang der Kurve (benachbarte Punkte etwa 1 px auseinander), daher misst length_xld die Kantenlänge und area_center_xld / circularity_xld die von einer geschlossenen Kante umschlossene Form (eine Scheibe mit r = 18 px ergibt length_xld etwa 113 px = 2πr).
★Bis 2026-11-03 wurden die Pixel des 2–3 px breiten Bandes über der Schwelle in Rasterreihenfolge zu einer Kontur gemacht — dieselbe Scheibe ergab length_xld 2508 px (die Punkte liefen zeilenweise hin und her). Von der Punktreihenfolge unabhängige Größen (Geradenanpassung wie fit_line_contour_xld) bleiben nahe an den früheren Werten.
a stellt die Schwelle der Kantenstärke ein. b wird nicht verwendet.
Raises:
FsValueError: ein Bild mit NaN / inf.
• Leitfaden zur Familie gallery2d_contour_measure
• 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.
edges_sub_pix 0.50 0.50
▸ Diese Pipeline laden · Laden & ausführen
• gallery2d_contour_measure — py -3.11 examples/gallery2d_contour_measure.py
• quickstart — py -3.11 examples/quickstart.py
contour als Eingabe)identity · select_contours · smooth_contours · fit_line_contours · contours_to_region · count_contours · total_length · select_contours_xld
contour)select_contours · smooth_contours · fit_line_contours · contours_to_region · sk_find_contours · lines_gauss · select_contours_xld · smooth_contours_xld
*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.