halcon_ext op• Datenarten: image → image
• Aufruf: fullseye.apply(img, "hx_close_edges", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])
• HALCON-Äquivalent: close_edges (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_close_edges: Regler a durchfahren (Doku-Website)
Regler b durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):
▸ hx_close_edges: Regler b durchfahren (Doku-Website)
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ hx_close_edges: 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).*
Schließt Lücken in einem Kantenamplitudenbild: Schwellwert a, dann morphologisches Schließen (Radius b).
Binarisiert mit v > a und wendet dann scipy.ndimage.binary_closing mit it Iterationen eines vollständig verbundenen 3×3-Strukturelements (8er-Nachbarschaft) an = 1 Schließung (Closing) (Dilatation→Erosion) mit einem (2*it+1)-Quadrat, und gibt ein 0/1-float-Bild zurück.
• a → Binarisierungs-Schwellwert (setzt ein Kantenamplitudenbild voraus; bei a=0 ist jedes Pixel größer als 0 Vordergrund).
• b → Anzahl der Iterationen des Strukturelements it = 1 + int(b*3) (1 bis 4; Quadratseite 3 bis 9 Pixel). Schließbare Lücken sind etwa
2*it Pixel oder kleiner.
Achtung: binary_closing erodiert mit dem Bildäußeren als 0, daher wird ein Band von it Pixeln vom Bildrand stets 0 (it=1 auf ein 20×20 aus lauter 1 angewandt, bleiben 18×18). Bei Kanten, die den Rand berühren, vorher einen Rand hinzufügen oder das Ergebnis erneut dilatieren. Die Eingabe ist ein Bild (Kantenamplitude), die Ausgabe ebenfalls von der Sorte image, inhaltlich aber binär. Nach hx_nonmax_dir oder sobel_amp platzieren und verbundene Kanten an hx_region_to_label oder hx_detect_edge_segments weitergeben.
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_close_edges 0.50 0.50
▸ Diese Pipeline laden · Laden & ausführen
• gallery2d_halcon_ext — py -3.11 examples/gallery2d_halcon_ext.py
• poc_metal_grain_size — py -3.11 examples/poc_metal_grain_size.py
image als Eingabe)identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter
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.