vol_boundary — 3D boundary op

Data kinds: voxelvoxel

Call: import fullseye as fs; fs.ledger.vol_boundary(vol_binary, connectivity=6, side='inner') (to call the implementation directly, import volops; volops.vol_boundary(vol_binary, connectivity=6, side='inner'); from the registry, ops3d.get("vol_boundary"))

Usage

Boundary shell of a binary volume (the 3-D `region_boundary`).

`side='inner'` keeps the foreground voxels that touch background:

`mask & ~erode(mask). side='outer'` keeps the background voxels that

touch foreground: `dilate(mask) & ~mask`. *connectivity* (6/18/26) decides

which neighbours count as "touching" — 6 uses face neighbours only (the

thinnest shell); 26 also counts a diagonal background contact, so shells at

convex corners come out thicker. The volume border counts as background

for the *inner* shell (a mask reaching the border has a boundary there —

the same convention as the surface-area estimate in

:func:vol_region_props); the *outer* shell can only occupy voxels that

exist, so a mask filling the whole volume has an empty outer boundary.

A solid region's interior drops out entirely: the shell of a solid ball of

radius `r voxels is roughly a 3/r` fraction of it (surface over

volume), so the saving grows with size — which is exactly why boundary

representations (and :func:vol_boundary_points) are the memory-frugal way

to hand a shape to the point-cloud / metrology operators.

Returns a `(D, H, W) float64 {0, 1}` volume (chainable into

:func:vol_label, :func:vol_boundary_points, ...).

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.

Runnable examples (verified samples that actually call this op)

roi_domain_boundarypy -3.11 examples_3d/roi_domain_boundary.py

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

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

Same category (boundary)

vol_boundary_points


*Provenance: volops.py — 3D 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.