sdf_to_occupancy — 3D transform op

• Data kinds: sdf → voxel

• Call: import fullseye as fs; fs.ledger.sdf_to_occupancy(sdf, iso=0.0) (implementation को सीधे call करना हो तो import match3d; match3d.sdf_to_occupancy(sdf, iso=0.0), registry से लेना हो तो ops3d.get("sdf_to_occupancy"))

उपयोग

SDF → occupancy voxel (iso या उससे कम = अंदर = 1)। SDF से वापस voxel में।

यह op केवल (sdf <= iso).astype(float64) है। signed_distance_field के नियम (अंदर <0) में iso=0.0 से अंदर=1, बाहर=0। बराबरी शामिल है, इसलिए ठीक iso वाला voxel अंदर गिना जाता है। iso positive हो तो बाहर की ओर iso voxel जितना फैला occupancy, negative हो तो सिकुड़ा occupancy मिलता है (SDF असली distance हो तो isotropic dilation/erosion जैसा)। tsdf_from_depth के output (surface के आगे +, पीछे −, unobserved +1) पर भी वही iso=0.0 चलता है, पर unobserved क्षेत्र 0 वाली तरफ़ (बाहर) चला जाता है। Input का आकार कुछ भी हो, return value उसी आकार का float64 (0.0 / 1.0) है। NaN की तुलना false होती है, इसलिए वह 0 बनता है (कोई warning नहीं)।

★Label volume देने पर background "अंदर" बन जाता है। backends_typed.TYPE_TO_SORT sdf / labels / voxel को एक ही volume में समेट देता है, इसलिए label_components या vol_label का output सीधे जोड़ने पर भी exception नहीं आता। Label में 0 background है और 1 या ज़्यादा foreground, इसलिए <= 0 ख़ुद background है। मापा गया (2026-09-08, 24³ का cube, असली अंदरूनी हिस्सा 1,728 voxel): SDF देने पर 1,728, उसी आकार के 0/1/2 label देने पर 9,504 (5.5 गुना) —— sign उल्टा हो गया है। Label से occupancy बनाना हो तो iso नहीं, ख़ुद labels > 0 लिखें।

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

voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa

इसी 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: 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.