r2_inner_circle — 2D region op

• Datenarten: region → region

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

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

r2_inner_circle: 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 durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):

▸ r2_inner_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_inner_circle: Stufen (Doku-Website)

Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):

▸ r2_inner_circle: andere Eingaben (Doku-Website)

Verwendung

Größter einbeschriebener Kreis als Maske (a skaliert den gezeichneten Radius; a=0,5 = exakt).

Zeichnet den größten Inkreis der Region als Maske. Die Eingabe wird mit > 0.5 in eine Vordergrundmaske umgewandelt; scipy.ndimage.distance_transform_edt liefert für jedes Vordergrundpixel die Distanz zum nächsten Hintergrundpixel, und das Pixel mit dem Maximum r0 wird zum Mittelpunkt (cy, cx) (bei mehreren Maxima das erste Pixel in zeilenweiser Reihenfolge). Der gezeichnete Radius ist r = r0 * (0.6 + 0.8*a): das 0.6-Fache bei a=0, genau r0 bei a=0.5, das 1.4-Fache bei a=1 (a wird auf [0,1] begrenzt, bei nicht endlichem Wert 0.5). b wird nicht verwendet.

Der Rückgabewert ist eine float64-0/1-Maske gleicher Form wie die Eingabe (Kreisscheibe (y-cy)^2+(x-cx)^2 <= r^2). Ohne Vordergrund nur Nullen. Koordinaten sind (row, col).

Hinweis: r0 ist "die Distanz zum Mittelpunkt eines Hintergrundpixels", daher kann die gezeichnete Kreisscheibe selbst bei a=0.5 um etwa 1 Pixel über den Rand der Region hinausragen (gemessen: 2 äußere Pixel bei einem 10x20-Rechteck, bei einer Kreisscheibe mit Radius 7 12 äußere Pixel). Soll sie streng innen liegen, a etwas verringern. Auch wenn die Region aus mehreren Zusammenhangskomponenten besteht, gibt es nur 1 Inkreis (den der dicksten Komponente). Ein 3-dimensionales Array (H,W,C) wird zu (H, W*C) abgeflacht, daher keine Farbbilder übergeben. Davor threshold oder select_largest; der zugehörige Umkreis ist r2_smallest_circle (das Verhältnis der beiden Radien ist ein grobes Maß für die Rundheit).

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie gallery2d_region

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

▸ Diese Pipeline laden  ·  Laden & ausführen

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

• gallery2d_region — py -3.11 examples/gallery2d_region.py

Typkompatible Folge-Operatoren (nehmen region als Eingabe)

identity · reg_erode · reg_dilate · reg_open · reg_close · fill_holes · select_largest · remove_small

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