xsp_chamfer_dist — 2D region op

Data kinds: regionimage

Call: fullseye.apply(img, "xsp_chamfer_dist", a=0.5, b=0.5) (the 2-D model is one image plus two scalar knobs a,b∈[0,1])

Usage

City-block (chamfer) distance to the nearest background pixel, normalised to [0,1].

> The detailed description below is the original text — the summary and the headings are translated.

★2026-09-02: 縮退入力での 符号つきセンチネル を潰す。

`scipy.ndimage.distance_transform_cdt` は「背景画素が 1 つも無い」入力に対して

距離ではなく -1 を全画素に書く(実測: `np.ones((8,8), bool)` -> min=max=-1)。

旧実装はそれをそのまま `_norm` に通していたので、**塗り潰された領域の距離マップが

一様 -1 の「画像」**になっていた —— 例外も警告も出ないまま値域 [0,1] の image 契約を

破り、保存・表示では全面が黒に潰れる。

背景が無い = どの画素も「無限に遠い」ので、正規化後の正直な答えは 一様 1.0

前景が無いときは距離 0 の一様 0.0。どちらも符号つきの値を返さない。

Detailed usage guide

gallery2d_region family guide

References (sample data, literature)

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

Runnable examples (verified samples that actually call this op)

gallery2d_regionpy -3.11 examples/gallery2d_region.py

Ops the type connects to (they accept image as input)

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

Same category (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.