vol_distance_transform — 3D medial op

• データ種: voxel → voxel

• 呼び出し: import fullseye as fs; fs.ledger.vol_distance_transform(vol_binary, spacing=None) (実装を直接呼ぶなら import volops; volops.vol_distance_transform(vol_binary, spacing=None)、台帳から引くなら ops3d.get("vol_distance_transform"))

• GPU: あり(許可リストの機械的 GPU 経路、CuPy)。device="auto" は測った大きさ(16,777,216 画素)以上で GPU を選ぶ

使い方

Exact Euclidean distance transform of a binary volume.

Each foreground (non-zero) voxel is labelled with its Euclidean distance to the nearest background voxel, via scipy.ndimage.distance_transform_edt. Pass *spacing* (sz, sy, sx) (e.g. VolumeMeta.spacing_mm, or the VolumeMeta itself) to make the distance anisotropy-aware — millimetres rather than voxels; otherwise unit spacing is assumed. A non-{0, 1} input is thresholded at > 0.5.

Returns a (D, H, W) float64 distance field (0 on the background). Outside the volume is not background (a foreground slab touching the edge keeps growing towards it). With no background voxel at all the nearest background is infinitely far: every voxel is inf (the 2-D distance_transform returns its normalised maximum 1.0 in the same case). This op returns absolute distances, so the 2-D convention (normalise to 1.0) does not carry over; inf was chosen over raising so that a mixed batch keeps its shape. Dividing by the maximum afterwards gives NaN — check np.isinf first.

Reference: Felzenszwalb & Huttenlocher, Theory of Computing 2012.

Empty input (vol_binary with 0 elements) raises ValueError.

参考(サンプルデータ・文献)

• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。

• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。

実行できる例(この op を実際に呼ぶ検証済みサンプル)

• medial_topology — py -3.11 examples_3d/medial_topology.py

• molecule_atom_count — py -3.11 examples_3d/molecule_atom_count.py

• nearest_seed_partition — py -3.11 examples_3d/nearest_seed_partition.py

• vessel_metrology — py -3.11 examples_3d/vessel_metrology.py

型が繋がる次の op(voxel を入力に取れる)

voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa

同カテゴリ(medial)

distance_ridge · skeletonize_vol · medial_axis_points · topology_signature · medial_match · skeleton_junctions3d · skeleton_endpoints3d · skeleton_prune3d


*Provenance: volops.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.