preprocess op• Datenarten: points → points
• Aufruf: import fullseye as fs; fs.ledger.mls_smooth(points, radius: 'float', order: 'int' = 2) (die Implementierung direkt: import pcl_filter; pcl_filter.mls_smooth(points, radius: 'float', order: 'int' = 2); aus dem Register: ops3d.get("mls_smooth"))
Reduziert Rauschen, indem jeder Punkt auf eine lokale Polynomfläche projiziert wird (Moving-Least-Squares-Glättung).
Sammelt für jeden Punkt die Nachbarn im Radius radius, schätzt per gewichteter PCA eine lokale Ebene (Normale n und die 2 Achsen der Tangentialebene) und passt an die Nachbarn "Koordinate (u,v) in der Tangentialebene → Höhe h in Normalenrichtung" eine Polynomfläche vom Grad order per gaußgewichteter kleinster Quadrate an. Der betrachtete Punkt selbst liegt im Ursprung (0,0) der lokalen Koordinaten, daher wird er um die Höhe der angepassten Fläche bei (0,0) (= konstanter Term) in Normalenrichtung verschoben und so auf die Fläche projiziert. Die Form der Fläche bleibt erhalten, nur das Sensorrauschen wird geglättet.
points : array_like, shape (N, 3)
Eingabe-Punktwolke.
radius : float
Radius der Nachbarschaftskugel (> 0). Träger der lokalen Fläche.
order : int
Grad des lokalen Polynoms (Standard 2). Die Anzahl der Terme ist (order+1)(order+2)/2.
ndarray, shape (N, 3)
Die geglättete Punktwolke (Reihenfolge und Punktzahl erhalten). Punkte mit weniger Nachbarn als Polynomterme bleiben an ihrer Position.
Es ist ein Näherungsverfahren. Punkte mit weniger Nachbarn als Terme / mit entarteter lokaler Ebene werden nicht bewegt und behalten ihre Position (eine Sicherheitsmaßnahme gegen Ausreißer an Löchern und Rändern). radius <= 0 löst ValueError aus, leere Eingabe ergibt eine leere Ausgabe.
• depth_sensors — Tiefensensoren — Messprinzipien, Werte realer Geräte, wie Messlücken entstehen
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• pcl_geodesic — py -3.11 examples_3d/pcl_geodesic.py
points als Eingabe)points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d
preprocess)statistical_outlier_removal · radius_outlier_removal · voxel_grid_downsample · volume_downsample
*Provenance: pcl_filter.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.