halcon_ext op• Datenarten: image → region
• Aufruf: fullseye.apply(img, "hx_detect_edge_segments", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])
• HALCON-Äquivalent: detect_edge_segments (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_detect_edge_segments: Regler a durchfahren (Doku-Website)
Regler b durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):
▸ hx_detect_edge_segments: Regler b durchfahren (Doku-Website)
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ hx_detect_edge_segments: 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).*
Detektiert gerade Kantenfragmente: mit NMS ausdünnen, dann die Komponenten behalten, die die PCA als langgestreckt (linienhaft) ausweist.
Teilt die mit hx_nonmax_dir(v, a, 0) ausgedünnten Kanten (> 0) mit 8er-Nachbarschaft in Zusammenhangskomponenten und gibt eine 0/1-float-Region zurück, in der nur Komponenten, deren Eigenwertverhältnis der Kovarianz der Pixelkoordinaten λmax/λmin mindestens min_ratio beträgt (länglich = linienartig), 1 sind.
• a → Schwellwert für schwache Kanten der Ausdünnungsstufe (wie a von hx_nonmax_dir; normierte Amplituden unter a*0.3 werden verworfen).
• b → Länglichkeits-Schwellwert min_ratio = 3 + b*12 (3 bis 15). Je größer, desto mehr bleiben nur gerade Fragmente.
• Komponenten mit weniger als 5 Pixeln werden bedingungslos verworfen. Ist λmin nahezu 0 (eine perfekte Gerade), gilt das Verhältnis als unendlich und die Komponente wird übernommen.
Achtung: Die Geradheitsprüfung fragt, "ob die Ausdehnung der Punktwolke auf 1 Achse konzentriert ist", daher bestehen auch Kurven, wenn sie länglich genug sind. Da die Ausdünnungsstufe diagonale Kanten kaum ausdünnt (siehe die Hinweise zu hx_nonmax_dir), werden diagonale Kanten zu breiten Klumpen, deren Eigenwertverhältnis sinkt, sodass sie leicht verworfen werden. Da je Zusammenhangskomponente gearbeitet wird, bilden sich kreuzende Linien 1 Komponente und das Verhältnis sinkt. Um nachgelagert jedes Liniensegment einzeln zu behandeln, hx_region_to_label oder hough_line_trans.
Leeres Bild (gemessen): Ein Bild gleichmäßiger Helligkeit liefert unabhängig von der Helligkeit ein leeres Ergebnis (jedes Pixel ist Hintergrund 0). Reinweiß und Reinschwarz verhalten sich gleich; Helligkeit allein detektiert nichts.
• 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.
hx_detect_edge_segments 0.50 0.50
▸ Diese Pipeline laden · Laden & ausführen
• find_ops_by_meaning — py -3.11 examples/find_ops_by_meaning.py
• gallery2d_halcon_ext — py -3.11 examples/gallery2d_halcon_ext.py
region als Eingabe)identity · reg_erode · reg_dilate · reg_open · reg_close · fill_holes · select_largest · remove_small
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.