boundary op• Data kinds: voxel → points
• Call: import fullseye as fs; fs.ledger.vol_boundary_points(vol_binary, spacing=None, connectivity=6, origin=(0, 0, 0)) (to call the implementation directly, import volops; volops.vol_boundary_points(vol_binary, spacing=None, connectivity=6, origin=(0, 0, 0)); from the registry, ops3d.get("vol_boundary_points"))
• GPU: yes (mechanical GPU path from the allow-list, CuPy). device="auto" chooses the GPU from the measured size (16,777,216 pixels) up
Boundary shell as an (N, 3) point cloud in (z, y, x) order.
The bridge from the voxel world to the point-cloud world at minimal memory:
only the *surface* voxels of the mask become points (inner boundary, see vol_boundary), so a solid object of a million voxels typically yields a few tens of thousands of points — ready for fit_sphere3 / smallest_box3 / register_fpfh and friends without ever materialising the full grid as points.
Coordinates are (index + origin) * spacing per axis: pass *spacing* (sz, sy, sx) (or a volio.VolumeMeta) for physical millimetre coordinates, and pass the offset returned by vol_crop_domain as *origin* so points from a cropped volume land in the uncropped frame (*origin* is in voxel units — it is added to the index *before* the spacing multiply; it must be finite, and may be fractional for a subvoxel shift). An empty mask returns an empty (0, 3) array (a valid question with a valid empty answer — unlike a crop, which needs a box to exist).
Returns an (N, 3) float64 array, rows ordered z-major (deterministic).
Empty input (vol_binary with 0 elements) raises ValueError.
• 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.
• roi_domain_boundary — py -3.11 examples_3d/roi_domain_boundary.py
points as input)points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · find_surface_pose · moment_axes
boundary)*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.