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

*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):
▸ hx_gen_parallel_contour: Regler a durchfahren (Doku-Website)
*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):
▸ hx_gen_parallel_contour: Stufen (Doku-Website)
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ hx_gen_parallel_contour: andere Eingaben (Doku-Website)
Erzeugt die Parallelkontur (Normalenversatz) jeder Kontur (der vorzeichenbehaftete Abstand kommt aus (a−0,5)).
Berechnet für jede Kontur (2 oder mehr Punkte) die Tangente mit np.gradient(c, axis=0), dreht sie um 90° zur Einheitsnormalen (-t_col, t_row) / |t| und gibt die Kontur zurück, deren Punkte alle um dist in dieser Richtung verschoben sind. Die ursprüngliche Kontur ist nicht in der Ausgabe enthalten (sie wird ersetzt).
• a → vorzeichenbehafteter Versatz dist = (a - 0.5) * 10 (-5 bis +5 Pixel; bei a=0.5 keine Änderung).
• b wird nicht verwendet.
• Punkte mit Tangentenlänge unter 1e-9 (doppelte Punkte) erhalten Normale 0 und werden nicht bewegt. Konturen mit 1 Punkt bleiben unverändert.
Die Richtung der Normalen bestimmt die Laufrichtung der Kontur (ob links oder rechts positiv ist, hängt von der Punktreihenfolge ab). Eine Verschiebung über den Krümmungsradius hinaus führt zu Selbstüberschneidung (erkennbar mit hx_test_self_intersect). Dient zum Vergleich verdickter/verdünnter Umrisse oder um Messlinien in einem festen Abstand von einer Grenze zu platzieren.
• Leitfaden zur Familie gallery2d_halcon_ext
• 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 sk_find_contours 0.50 0.50 hx_gen_parallel_contour 0.50 0.50
▸ Diese Pipeline laden · Laden & ausführen
• gallery2d_halcon_ext — py -3.11 examples/gallery2d_halcon_ext.py
contour als Eingabe)identity · select_contours · smooth_contours · fit_line_contours · contours_to_region · count_contours · total_length · select_contours_xld
halcon_ext)hx_gen_circle · hx_gen_ellipse · hx_gen_rectangle2 · hx_gen_checker_region · hx_gen_grid_region · hx_gabor · hx_fit_surface1 · hx_fit_surface2
*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.