esdf — 3D occupancy op

• Data kinds: voxel → sdf

• Call: import fullseye as fs; fs.ledger.esdf(occupancy, voxel_size=1.0) (implementation को सीधे call करना हो तो import occupancy; occupancy.esdf(occupancy, voxel_size=1.0), registry से लेना हो तो ops3d.get("esdf"))

उपयोग

occupancy grid → Euclidean signed distance field (ESDF) (बाहर=+ निकटतम occupied तक, अंदर=- निकटतम free तक)।

scipy.ndimage.distance_transform_edt को free side (बाहर) और occupied side (अंदर) पर अलग-अलग लगाता है, और d_out - d_in से sign देता है। voxel_size voxel की edge length है (isotropic scalar या anisotropic लंबाई 3; EDT के sampling को दिया जाता है), और लौटाई गई दूरियाँ world इकाई में हैं। सब free हो तो +inf, सब occupied हो तो -inf (ईमानदारी से: सबसे नज़दीकी विपरीत पक्ष मौजूद ही नहीं)। Zero crossing occupied/free voxels के centres के बीच में पड़ता है, इसलिए boundary cell के centre पर |ESDF| लगभग 1 voxel होता है (downstream tests की tolerance का आधार)।

voxel_size<=0 पर ValueError उठाता है।

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

• occupancy_esdf — py -3.11 examples_3d/occupancy_esdf.py

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

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

इसी category के (occupancy)

occupancy_grid · inflate · query_distance


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

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