region op• Data kinds: region → region
• Call: fullseye.apply(img, "r2_smallest_circle", a=0.5, b=0.5) (the 2-D model is one image plus two scalar knobs a,b∈[0,1])
• HALCON equivalent: smallest_circle (the HALCON reference is a useful guide to its meaning and parameters)

*The figure is the actual output on a synthetic 128×128 input. Left: input, right: output. Point clouds are drawn as a top-down scatter (brightness = z), 1-D series as a line plot, volumes as the maximum-intensity projection along z, videos as the middle frame, complex images as magnitude; return values that are not pictures are shown as the values themselves.*
Sweeping knob a (0.1 / 0.5 / 0.9, the other knob at its default):
▸ r2_smallest_circle: knob a sweep (docs site)
*Knob b does not change the output (measured: identical at 0.1 / 0.5 / 0.9).*
Stages (the ops that come before → this op, left to right):
▸ r2_smallest_circle: stages (docs site)
On other images (synthetic scene / photo / coins. Top row: inputs, bottom row: their outputs. Knobs at default):
▸ r2_smallest_circle: other inputs (docs site)
Minimum enclosing circle as a mask (Welzl); a inflates radius (>=0).
> The detailed description below is the original text — the summary and the headings are translated.
領域の全前景画素(画素中心)を含む最小包含円をマスクとして描く。前景座標を
凸包(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`。
Border handling: treat everything outside the image as background (0) (measured; tools/impl2/border_probe.py).
• gallery2d_region family guide
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
The program below has been verified to run (same input as the figure). In Studio's help this block becomes buttons that load and run it on the spot.
threshold 0.50 0.50 r2_smallest_circle 0.50 0.50
▸ Load this pipeline · Load & run
• gallery2d_region — py -3.11 examples/gallery2d_region.py
region as input)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. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.