tsdf_from_depth — 3D transform op

• Data kinds: depth → sdf

• Call: import fullseye as fs; fs.ledger.tsdf_from_depth(depth, fx, fy, cx, cy, size=64, bounds=None, trunc=3.0) (implementation को सीधे call करना हो तो import match3d; match3d.tsdf_from_depth(depth, fx, fy, cx, cy, size=64, bounds=None, trunc=3.0), registry से लेना हो तो ops3d.get("tsdf_from_depth"))

उपयोग

depth map (2.5D) → TSDF volume (RGB-D reconstruction का मानक representation)। depth→TSDF conversion।

हर voxel को image पर project किया जाता है, और line of sight पर observed depth से signed truncated distance [-1,1] रखा जाता है (surface के आगे +, पीछे −, surface पर 0)। KinectFusion परिवार का बुनियादी representation।

Grid: bounds=(lo, hi) (X, Y, Z) camera coordinates में हैं (depth_to_points जैसे ही); None हो तो depth को back-project करके बने point cloud का min−2 / max+2 (depth की इकाई में)। Output (size,size,size) float32 है, axis क्रम (Z, Y, X), voxel केंद्र = lo + (i + 0.5)/size·(hi − lo)। ध्यान दें कि bounds का क्रम (x,y,z) और array के axis (z,y,x) उल्टे हैं।

मान: हर voxel केंद्र को u = X·fx/Z + cx, v = Y·fy/Z + cy से pixel पर round किया जाता है, और उस pixel की observed depth d से clip((d − Z)/trunc, −1, 1) निकाला जाता है (trunc depth वाली इकाई में)। Image से बाहर गिरने वाले voxel, जिनकी observed depth 0 या कम हो, और जिनका Z 0 या कम हो, उन्हें +1 (unobserved = free) रखा जाता है (border pixel पर clip करके उन्हें observed जैसा नहीं दिखाया जाता)। नियम: depth 0 invalid मान है।

• सभी depth 0 हों और bounds=None हो, तो point cloud खाली हो जाता है और numpy का min exception देता है।

• यह 1 viewpoint का TSDF है, इसलिए line of sight का पिछला हिस्सा −1 से भर जाता है (बंद object नहीं बनता)।

आगे: voxel_to_mesh(tsdf, iso=0.0) से surface निकालें। Occupancy के लिए sdf_to_occupancy।

संदर्भ (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 जुड़ता है (sdf को input के रूप में लेते हैं)

sdf_to_occupancy · fuse_to_voxel · integrate · extract_surface_points · query_distance · sdf_union · sdf_intersect · sdf_subtract

इसी category के (transform)

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


*Provenance: match3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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