region op• Datenarten: region → region
• Aufruf: fullseye.apply(img, "r2_smallest_circle", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])
• HALCON-Äquivalent: smallest_circle (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):
▸ r2_smallest_circle: 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):
▸ r2_smallest_circle: Stufen (Doku-Website)
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ r2_smallest_circle: andere Eingaben (Doku-Website)
Kleinster umschließender Kreis als Maske (Welzl); a vergrößert den Radius (>=0).
Zeichnet als Maske den kleinsten umschließenden Kreis, der alle Vordergrundpixel (Pixelmittelpunkte) der Region enthält. Die Vordergrundkoordinaten werden auf die konvexe Hülle reduziert (Andrews monotone Kette, Orientierungstests mit der robusten Version von predicates.orient2d), dann bestimmt Welzls rekursiver Algorithmus den exakten kleinsten Kreis (cy, cx, r). Die Reihenfolge der Hülleneckpunkte wird mit festem numpy.random.default_rng(0) gemischt, daher ist das Ergebnis deterministisch.
Der gezeichnete Radius ist r_draw = (r + 0.75) * (1 + 0.4*a). Selbst bei a=0 wird um zusätzliche 0.75 Pixel vergrößert (mit dem auf Pixelmittelpunkten basierenden r würden Randpixel fehlen; das Design stellt sicher, dass alle Vordergrundpixel enthalten sind). Bei a=1 das 1.4-Fache. a wird auf [0,1] begrenzt. b wird nicht verwendet. Der Rückgabewert ist eine float64-0/1-Maske gleicher Form wie die Eingabe, ohne Vordergrund nur Nullen.
Hinweis: Die Ausgabe enthält stets die Eingaberegion, und ein größeres a bewegt sie nie in Schrumpfrichtung. Bei mehreren Zusammenhangskomponenten umschließt 1 Kreis das Ganze. Ist der Vordergrund 1 Pixel, ergibt r=0 eine Kreisscheibe mit Radius 0.75 (1 Pixel). Welzls Rekursion wird so tief wie die Anzahl der Hülleneckpunkte. Die Zahlenwerte von Kreismittelpunkt und Radius werden nicht zurückgegeben. Das Radiusverhältnis zum Inkreis r2_inner_circle ist ein grobes Maß für die Rundheit; die orientierte umschließende Form ist r2_smallest_rectangle2.
Randbehandlung: alles außerhalb des Bildes als Hintergrund (0) behandeln (gemessen; tools/impl2/border_probe.py).
• Leitfaden zur Familie gallery2d_region
• 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 r2_smallest_circle 0.50 0.50
▸ Diese Pipeline laden · Laden & ausführen
• gallery2d_region — py -3.11 examples/gallery2d_region.py
region als Eingabe)identity · reg_erode · reg_dilate · reg_open · reg_close · fill_holes · select_largest · remove_small
region)reg_erode · reg_dilate · reg_open · reg_close · fill_holes · select_largest · remove_small · invert_region
*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.