typed op• Datenarten: points → points
• Aufruf: fullseye.apply(img, "tb_voxel_grid_downsample", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])

*Die Abbildung ist die tatsächliche Ausgabe auf einer synthetischen 128×128-Eingabe. Links Eingabe, rechts Ausgabe. Punktwolken als Draufsicht-Streudiagramm (Helligkeit = z), 1-D-Reihen als Linie, Volumen als Maximum-Projektion entlang z, Videos als mittleres Bild, komplexe Bilder als Betrag; Rückgabewerte, die kein Bild ergeben, werden als Werte gezeigt.*
*Regler a ändert die Ausgabe nicht (gemessen: identisch bei 0,1 / 0,5 / 0,9).*
*Regler b ändert die Ausgabe nicht (gemessen: identisch bei 0,1 / 0,5 / 0,9).*
Stufen (die vorangehenden Ops → dieser Op, von links nach rechts):
▸ tb_voxel_grid_downsample: Stufen (Doku-Website)
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ tb_voxel_grid_downsample: andere Eingaben (Doku-Website)
Dünnt die Punktwolke mit einem Gitter der Zellgröße voxel_size aus und fasst jede Zelle zu einem einzigen Schwerpunktpunkt zusammen (deterministisch).
Teilt den Raum in würfelförmige Zellen der Seitenlänge voxel_size und vertritt die in dieselbe Zelle fallenden Punkte durch ihren Schwerpunkt, 1 Punkt. Das Standardverfahren, um Dichteschwankungen auszugleichen und den nachgelagerten Aufwand (ICP, Merkmale) über die Punktzahl zu begrenzen. Die Ausgabereihenfolge ist auf die lexikografische Ordnung der Voxelkoordinaten festgelegt (gleiche Eingabe ergibt immer gleiche Ausgabe = deterministisch).
points : array_like, shape (N, 3)
Eingabe-Punktwolke.
voxel_size : float
Seitenlänge einer Zelle (> 0). Je größer, desto stärker die Ausdünnung.
ndarray, shape (M, 3)
Schwerpunkt jeder belegten Zelle (M <= N). Alle liegen innerhalb der achsparallelen bounding box der Eingabe.
voxel_size <= 0 führt zu ValueError. Leere Eingabe ergibt ein leeres (0,3) (graceful). Der Schwerpunkt ist der Mittelwert der Punkte in der Zelle und liegt daher immer innerhalb der konvexen Hülle der Eingabepunkte (folglich innerhalb der bbox).
Die in die 2-D-Evolutionsregistrierung überbrückte 3d-op voxel_grid_downsample. Die Implementierung ist dieselbe, nur die Aufrufkonvention ist an op(v, a, b) angepasst. Diese op hat keine Stellpunkte; weder a noch b wird verwendet.
• 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.
Das Programm unten ist nachweislich lauffähig (gleiche Eingabe wie die Abbildung). In der Studio-Hilfe wird dieser Block zu Schaltflächen, die es sofort laden und ausführen.
img_to_points 0.50 0.50 tb_voxel_grid_downsample 0.50 0.50
▸ Diese Pipeline laden · Laden & ausführen
Die folgenden Beispiele rufen den zugrunde liegenden Ledger-Op voxel_grid_downsample auf. Dieser Brücken-Op ist dieselbe Implementierung, angepasst an die Konvention fn(v, a, b); das Verhalten gilt unverändert (nur die Aufrufform unterscheidet sich).
• pointcloud_downsampling — py -3.11 examples_3d/pointcloud_downsampling.py
points als Eingabe)identity · tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal
typed)tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_mls_smooth
*Provenance: ops.py — 2D 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.