tb_voxel_grid_downsample — 2D 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])

tb_voxel_grid_downsample: input → output

*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)

Verwendung

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).

Parameters

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.

Returns

ndarray, shape (M, 3)

Schwerpunkt jeder belegten Zelle (M <= N). Alle liegen innerhalb der achsparallelen bounding box der Eingabe.

Notes

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.

Referenzen (Beispieldaten, Literatur)

• 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.

In Studio ausprobieren

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

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

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

Typkompatible Folge-Operatoren (nehmen 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

Gleiche Kategorie (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.