radius_outlier_removal — 3D preprocess op

• Data kinds: points → points

• Call: import fullseye as fs; fs.ledger.radius_outlier_removal(points, radius: 'float', min_neighbors: 'int' = 8) (to call the implementation directly, import pcl_filter; pcl_filter.radius_outlier_removal(points, radius: 'float', min_neighbors: 'int' = 8); from the registry, ops3d.get("radius_outlier_removal"))

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

Usage

Remove the points with fewer than min_neighbors neighbours within radius (isolated-point removal).

Places a sphere of radius radius around each point and drops the points with fewer than min_neighbors other points inside it as "isolated grains". More local and direct than the statistical method, and the threshold is easy to choose when the real scale of the sensor is known.

Parameters

points : array_like, shape (N, 3)

Input point cloud.

radius : float

Radius of the sphere regarded as the neighbourhood (> 0).

min_neighbors : int

Number of neighbours required to keep a point (itself not counted, default 8).

Returns

filtered : ndarray, shape (M, 3)

Surviving points (original order preserved).

keep_mask : ndarray of bool, shape (N,)

Whether to keep each input point (True = keep).

Notes

radius <= 0 raises ValueError. Empty input returns empty (graceful).

Background guides (the physics and conventions behind this op)

• depth_sensors — Depth sensors — ranging principles, real-device figures, how dropouts appear

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)

• pcl_geodesic — py -3.11 examples_3d/pcl_geodesic.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 (preprocess)

statistical_outlier_removal · voxel_grid_downsample · mls_smooth · volume_downsample


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