mls_smooth — 3D preprocess op

• Data kinds: points → points

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

उपयोग

हर point को local polynomial surface पर project करके noise हटाता है (Moving Least Squares smoothing)।

हर point के लिए radius radius के अंदर के neighbours इकट्ठा करता है, weighted PCA से local plane (normal n और tangent plane की 2 axes) का अनुमान लगाता है, और neighbours के "tangent plane पर coordinate (u,v) → normal दिशा में height h" पर order degree की polynomial surface को Gaussian-weighted least squares से fit करता है। target point ख़ुद local coordinates के origin (0,0) पर होता है, इसलिए fit की गई surface की (0,0) पर height (= constant term) जितना normal की दिशा में खिसकाकर उसे surface पर project किया जाता है। surface का आकार बनाए रखते हुए सिर्फ़ sensor noise को smooth किया जा सकता है।

Parameters

points : array_like, shape (N, 3)

input point cloud।

radius : float

neighbourhood sphere की radius (> 0)। local surface का support।

order : int

local polynomial की degree (default 2)। terms की संख्या (order+1)(order+2)/2 है।

Returns

ndarray, shape (N, 3)

smoothing के बाद का point cloud (क्रम और points की संख्या बनी रहती है)। जिन points के neighbours polynomial के terms से कम हैं वे अपनी जगह रहते हैं।

Notes

यह approximate तरीका है। जिन points के neighbours terms से कम हैं / जिनका local plane degenerate है, उन्हें हिलाया नहीं जाता और वे अपनी जगह रहते हैं (holes और boundaries पर बेकाबू होने से बचाने का सुरक्षा उपाय)। radius <= 0 पर ValueError, खाली input पर खाली लौटाया जाता है।

पृष्ठभूमि 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)

statistical_outlier_removal · radius_outlier_removal · voxel_grid_downsample · 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.