cutout — 3D augment op

• Data kinds: points → points

• Call: import fullseye as fs; fs.ledger.cutout(points, extent: 'Union[float, np.ndarray]', seed: 'int' = 0) -> 'Tuple[np.ndarray, np.ndarray]' (to call the implementation directly, import pcl_augment; pcl_augment.cutout(points, extent: 'Union[float, np.ndarray]', seed: 'int' = 0) -> 'Tuple[np.ndarray, np.ndarray]'; from the registry, ops3d.get("cutout"))

• Return value through the ledger: fullseye.ledger.cutout(...) returns only the declared out type points (the underlying function also returns auxiliary values). When you need what was dropped, use fullseye.ledger.cutout.raw(...) or call pcl_augment.cutout directly.

Usage

Remove an axis-aligned box region in space and return (kept, kept_idx) (mimicking a local dropout).

Uniformly samples 1 existing point as the centre and removes all points inside a box with side length extent (scalar = cube, or (3,) = side length per axis). The centre point itself is always inside, so at least 1 point is removed. Removed points always fit within a box of side length extent (spatially local = distinguishable from random scattering). kept == points[kept_idx], extent > 0.

Passing a non-positive value or a shape other than (3,) as extent raises ValueError. Empty input returns empty and an empty index. The centre is the point chosen by rng.integers(n), so even with the same seed, a different point order removes a different place. The box test is the closed interval |P - center| <= extent/2. The number of points removed depends on density; making extent larger than the cloud removes every point. The return value is (kept float64 (M,3), kept_idx int64 (M,)), in the original order. For uniform loss use random_dropout.

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)

• sensor_seg — py -3.11 examples_3d/sensor_seg.py

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

points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d

Same category (augment)

jitter · random_rotation · random_scale · random_dropout · elastic_deform


*Provenance: pcl_augment.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.