statistical_outlier_removal — 3D preprocess op

• Data kinds: points → points

• Call: import fullseye as fs; fs.ledger.statistical_outlier_removal(points, k: 'int' = 16, std_ratio: 'float' = 2.0) (implementation को सीधे call करना हो तो import pcl_filter; pcl_filter.statistical_outlier_removal(points, k: 'int' = 16, std_ratio: 'float' = 2.0), registry से लेना हो तो ops3d.get("statistical_outlier_removal"))

• Ledger के ज़रिए return value: fullseye.ledger.statistical_outlier_removal(...) केवल घोषित out type points का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.statistical_outlier_removal.raw(...) का उपयोग करें, या pcl_filter.statistical_outlier_removal को सीधे call करें।

• मूल function का return: (kept, mask)

उपयोग

जिन points की k neighbours से औसत दूरी global रूप से अलग है उन्हें हटाता है (statistical outlier removal)।

हर point के लिए "सबसे पास के k points (ख़ुद को छोड़कर) तक की औसत दूरी" मापता है, और सभी points के उस distribution के mean + std_ratio*std से ज़्यादा वाले points को outlier मानकर हटा देता है। बिखरे हुए outliers की सफ़ाई में उपयोगी, और घनी surface के points बने रहते हैं।

Parameters

points : array_like, shape (N, 3)

input point cloud।

k : int

neighbours की संख्या (default 16)। points कम हों तो अंदर n-1 तक घटा दिया जाता है।

std_ratio : float

threshold कितना ढीला है। जितना बड़ा, points उतनी आसानी से बचते हैं (हटाना ढीला)।

Returns

filtered : ndarray, shape (M, 3)

बचे हुए points (मूल क्रम बना रहता है)।

keep_mask : ndarray of bool, shape (N,)

हर input point रखना है या नहीं (True=रखें)। points[keep_mask] filtered के बराबर है।

Notes

points < 3 होने पर statistics नहीं बनती, इसलिए सभी points रखे जाते हैं (graceful)।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• pcl_geodesic — py -3.11 examples_3d/pcl_geodesic.py

वे अगले ops जिनसे type जुड़ता है (points को input के रूप में लेते हैं)

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

इसी category के (preprocess)

radius_outlier_removal · voxel_grid_downsample · mls_smooth · volume_downsample


*Provenance: pcl_filter.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.