to_points — 3D transform op

• Data kinds: voxel × points × mesh × depth × gaussians → points

• Call: import fullseye as fs; fs.ledger.to_points(data, kind, samples=20000, **kw) (implementation को सीधे call करना हो तो import fuse3d; fuse3d.to_points(data, kind, samples=20000, **kw), registry से लेना हो तो ops3d.get("to_points"))

उपयोग

कोई भी 3D structure → point cloud (common representation)। सभी 5 structures को 1 प्रवेश द्वार में जोड़ता है।

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

"voxel"=density grid+{iso} / "3dgs"=means(N,3)।

हर kind का रूपांतरण (implementation के अनुसार):

• "points" / "3dgs": सिर्फ़ np.asarray(data, float) लौटाता है (आकार की जाँच नहीं; (N, 3) देना caller की ज़िम्मेदारी है)।

• "mesh": data = (vertices, faces)। match3d.mesh_to_points से area-weighted uniform sampling करके samples points (default 20000, fixed seed = deterministic)।

• "depth": data depth map (H, W) है, kw में fx, fy, cx, cy अनिवार्य हैं (न हों तो KeyError), stride वैकल्पिक है (default 1, thinning)। match3d.depth_to_points के pinhole back-projection से केवल depth > 0 वाले pixel को (x, y, z) points बनाया जाता है (camera coordinates, x = column direction, y = row direction, z = depth)।

• "voxel": density grid (D, H, W) पर kw["iso"] (default 0.5) से threshold लगाकर, np.argwhere के integer index coordinates (z, y, x) को float बनाकर point cloud बनता है। Physical coordinates में नहीं बदला जाता (spacing से गुणा नहीं होता)।

Return value: (N, 3) float64। kind ऊपर वालों में से कोई न हो तो ValueError। samples को "mesh" के अलावा नज़रअंदाज़ किया जाता है।

सावधानी: "voxel" के coordinates array index क्रम (z, y, x) में हैं, जबकि "depth" camera coordinates (x, y, z) देता है; हर kind में axes का अर्थ अलग है। अलग-अलग kind को register_cross / fuse_to_voxel से मिलाते समय यह अंतर caller को पहले से मिलाना होगा।

संदर्भ (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 करते हैं)

• transforms_repr — py -3.11 examples_3d/transforms_repr.py

वे अगले ops जिनसे type जुड़ता है (points को input के रूप में लेते हैं)

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

इसी category के (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. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.