split op• Data kinds: image2d → labels2d
• Call: import fullseye as fs; fs.ledger.blob_seeds(distance: 'Any', h: 'float', connectivity: 'int' = 8) -> 'np.ndarray' (to call the implementation directly, import blob2d; blob2d.blob_seeds(distance: 'Any', h: 'float', connectivity: 'int' = 8) -> 'np.ndarray'; from the registry, opsblob.get("blob_seeds"))
h-maxima seeds. h is an absolute value in the same units as distance.
Keeps only the "maxima that rise at least h high", numbers their connected components and returns them. Used as seeds when splitting merged clumps.
How it differs from the existing fs.op.xsk2_h_maxima (a gap that poc_cell_counting
recorded):
• That one clips its input to [0, 1], so passing a raw distance map breaks it (2 px and 20 px both become 1.0). This one does not clip.
• Its h is 0.05 + 0.3a = a ratio relative to the normalised image, so 1 large object in the image already raises the effective h on the small-object side (measured: the lower bound moved 0.42 → 0.80 px). Here it is in pixels (or physical units).
Speed: the reconstruction runs only inside the bounding box of each connected component. Propagation through the background disappears, so for 200 discs in 512x512: 237.7 ms → 15.3 ms (15.5x), with the result identical at every pixel (measured 2026-09-06).
distance : array_like
2-D real-valued field. Usually the output of blob_distance.
h : float
Rise height. Same unit as distance; must be greater than 0.
Larger values give fewer seeds (= less over-splitting, more under-splitting).
connectivity : {4, 8}
How maxima are connected.
numpy.ndarray
int32 label image (background 0, seeds 1..n).
• 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.
• blob_split_tour — py -3.11 examples/blob_split_tour.py
labels2d as input)blob_features · blob_select · blob_select_largest · blob_split · blob_region · blob_boundaries · blob_overlay
split)*Provenance: blob2d.py — BLOB 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.