separate_touching — SEGMENTATION watershed3d op

• Data kinds: voxel → labels

• Call: import fullseye as fs; fs.ledger.separate_touching(binary, min_distance: 'float' = 5.0, method: 'str' = 'auto') -> 'np.ndarray' (to call the implementation directly, import watershed3d; watershed3d.separate_touching(binary, min_distance: 'float' = 5.0, method: 'str' = 'auto') -> 'np.ndarray'; from the registry, opssegmentation.get("separate_touching"))

Usage

genuinely-new (B): an everyday wrapper that automatically separates touching objects in 1 call.

Folds the standard pipeline distance transform → maximum NMS seeding → watershed into 1 call that splits the typical case of "several objects touching and fused into 1 connected component" (in the public API this needs 3 ops wired by hand, so it is made into 1 function for the common case). Inside it is watershed_vol(..., markers=None).

Parameters

binary : array_like

3D foreground volume, bool or 0/1.

min_distance : float

Minimum spacing of the separating seeds (voxel). About the expected object radius is a good guide.

method : {"auto", "skimage", "scipy"}

Backend selection.

Returns

labels : ndarray(int32)

Same shape as binary. Background 0, labels 1..k for each separated object.

Detailed usage guide

• halcon_segmentation 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)

• watershed3d_tour — py -3.11 examples/watershed3d_tour.py

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

—

Same category (watershed3d)

distance_peaks · watershed_vol


*Provenance: watershed3d.py — SEGMENTATION 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.