to_points — 3D transform op

• Datenarten: voxel × points × mesh × depth × gaussians → points

• Aufruf: import fullseye as fs; fs.ledger.to_points(data, kind, samples=20000, **kw) (die Implementierung direkt: import fuse3d; fuse3d.to_points(data, kind, samples=20000, **kw); aus dem Register: ops3d.get("to_points"))

Verwendung

Jede 3-D-Struktur → eine Punktmenge (die gemeinsame Darstellung). Sie bündelt alle fünf Strukturen in einen Eingang.

kind: "points"(N,3) / "mesh"=(vertices,faces) / "depth"=depth+{fx,fy,cx,cy[,stride]} /

"voxel"=Dichte-grid+{iso} / "3dgs"=means(N,3).

Umwandlung je kind (wie implementiert):

• "points" / "3dgs": gibt nur np.asarray(data, float) zurück (keine Formprüfung; (N, 3) zu übergeben liegt in der Verantwortung des Aufrufers).

• "mesh": data = (vertices, faces). match3d.mesh_to_points tastet flächengewichtet gleichverteilt samples Punkte ab (Standard 20000, fester Seed = deterministisch).

• "depth": data ist eine Tiefenkarte (H, W); fx, fy, cx, cy in kw sind Pflicht (sonst KeyError), stride ist optional (Standard 1, Ausdünnen). Per Lochkamera-Rückprojektion von match3d.depth_to_points werden nur Pixel mit depth > 0 zu (x, y, z)-Punkten (Kamerakoordinaten, x = Spaltenrichtung, y = Zeilenrichtung, z = Tiefe).

• "voxel": Das Dichte-grid (D, H, W) wird mit kw["iso"] (Standard 0.5) geschwellt, und die ganzzahligen Index-Koordinaten (z, y, x) aus np.argwhere werden als float zur Punktwolke. Sie werden nicht in physikalische Koordinaten umgerechnet (spacing wird nicht angewandt).

Rückgabewert: (N, 3) float64. ValueError, wenn kind keiner der obigen ist. samples wird außer bei "mesh" ignoriert.

Achtung: "voxel"-Koordinaten sind in Array-Indexreihenfolge (z, y, x), "depth" liefert Kamerakoordinaten (x, y, z); die Bedeutung der Achsen unterscheidet sich je Art. Wer verschiedene Arten mit register_cross / fuse_to_voxel mischt, muss diesen Unterschied als Aufrufer angleichen.

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.

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

• transforms_repr — py -3.11 examples_3d/transforms_repr.py

Typkompatible Folge-Operatoren (nehmen points als Eingabe)

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

Gleiche Kategorie (transform)

points_to_voxel · gaussians_to_voxel · mesh_to_voxel · mesh_to_points · depth_to_points · voxel_to_mips · voxel_to_mesh · tsdf_from_depth


*Provenance: fuse3d.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.