hx_fit_circle_contour — 2D halcon_ext op

• Datenarten: contour → feature

• Aufruf: fullseye.apply(img, "hx_fit_circle_contour", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])

• HALCON-Äquivalent: fit_circle_contour_xld (Bedeutung und Parameter sind in der HALCON-Referenz nachzulesen)

hx_fit_circle_contour: input → output

*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 ä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):

▸ hx_fit_circle_contour: Stufen (Doku-Website)

Verwendung

Passt einen Kreis (algebraisch nach Kåsa) an die Konturpunkte an und liefert das Anpassungsresiduum (RMS) — klein = kreisnah.

Fasst die Punkte aller Konturen zusammen, passt mit Kåsas algebraischer Methode einen Kreis an ([x, y, 1]·sol = x^2 + y^2 nach kleinsten Quadraten lösen; Mittelpunkt (sol0/2, sol1/2), Radius sqrt(sol2 + cx^2 + cy^2)) und gibt den RMS der Differenz zwischen dem Abstand jedes Punktes vom Mittelpunkt und dem Radius, geteilt durch max(H, W) und bei 1 gekappt, als np.float64 zurück. Die Kreisparameter selbst werden nicht zurückgegeben.

• a, b werden nicht verwendet.

• 0.0 bei weniger als 3 Punkten (nicht von einem perfekten Kreis zu unterscheiden). Ist der Ausdruck unter der Radiuswurzel negativ, wird der Radius als 0 behandelt.

Die algebraische Methode minimiert nicht den geometrischen Abstand, daher ist der Radius bei kurzen Bögen (enger Winkelbereich) und bei Ausreißern verzerrt. Bei nahezu kollinearen Punkten liefert die Lösung minimaler Norm einen sehr großen Radius und ein kleines Residuum (eine Gerade sieht wie "ein großer Kreis" aus). Zur Beurteilung der Kreisförmigkeit mit hx_regress_contours kombinieren, um Geraden auszuschließen. Der Radius des umschließenden Kreises ist hx_smallest_circle_xld.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie gallery2d_halcon_ext

Referenzen (Beispieldaten, Literatur)

• 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.

In Studio ausprobieren

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_fit_circle_contour 0.50 0.50

▸ Diese Pipeline laden  ·  Laden & ausführen

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• gallery2d_halcon_ext — py -3.11 examples/gallery2d_halcon_ext.py

Typkompatible Folge-Operatoren (nehmen feature als Eingabe)

identity · feature_to_img

Gleiche Kategorie (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.