r2_smallest_circle — 2D region op

Datenarten: regionregion

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)

r2_smallest_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_smallest_circle: knob a sweep (docs site)

*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: stages (docs site)

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

r2_smallest_circle: other inputs (docs site)

Verwendung

Kleinster umschließender Kreis als Maske (Welzl); a vergrößert den Radius (>=0).

> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.

領域の全前景画素(画素中心)を含む最小包含円をマスクとして描く。前景座標を

凸包(Andrew の単調鎖、向き判定は `predicates.orient2d` の頑健版)に減らして

から Welzl の再帰アルゴリズムで厳密な最小円 `(cy, cx, r)` を求める。凸包

頂点の順序は `numpy.random.default_rng(0)` で固定シャッフルするので結果は

決定的。

描く半径は `r_draw = (r + 0.75) * (1 + 0.4*a)a=0` でも 0.75 画素

余分に膨らませる(画素中心ベースの `r` では縁の画素が欠けるため、全前景

画素を確実に含める設計)。`a=1 で 1.4 倍。a は [0,1] に clip。b` は

未使用。返り値は入力と同形の float64 0/1 マスク、前景が無ければ全零。

注意: 出力は常に入力領域を含み、`a` を上げても縮む方向には動かない。複数の

連結成分があれば全体を囲む 1 つの円。前景が 1 画素なら `r=0` で半径 0.75

の円板(1 画素)になる。Welzl の再帰は凸包頂点数ぶん深くなる。円の中心や

半径の数値は返さない。内接円 `r2_inner_circle` との半径比が真円度の粗い

指標になり、向きを持つ外接形は `r2_smallest_rectangle2`。

Randbehandlung: alles außerhalb des Bildes als Hintergrund (0) behandeln (gemessen; tools/impl2/border_probe.py).

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

▸ Load this pipeline  ·  Load & run

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

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