cylinder_unwrap — 3D curvilinear op

• Data kinds: voxel → voxel

• Call: import fullseye as fs; fs.ledger.cylinder_unwrap(vol, center=None, r_in=0.0, r_out=None, ntheta=180, nr=32, device='cpu') (implementation को सीधे call करना हो तो import match3d; match3d.cylinder_unwrap(vol, center=None, r_in=0.0, r_out=None, ntheta=180, nr=32, device='cpu'), registry से लेना हो तो ops3d.get("cylinder_unwrap"))

• GPU: इस op का GPU path है (device="cuda")

उपयोग

voxel की cylindrical surface को (height×θ×r) में unwrap करता है (cylindrical parts/pipes की अंदरूनी-बाहरी surface का inspection)। axis=z (D axis)।

θ axis बिना endpoint वाला periodic grid है (polar_unwrap जैसा ही 2026-08-30 का सुधार)।

Raises ValueError: इनपुट में NaN/Inf/float32 overflow हो तो।

Args: vol (D,H,W) है, center=(cy, cx) हर z slice के भीतर (row, column) है (default slice का केंद्र)। r_in-r_out (voxel, default min(H,W)/2 − 1) को nr बराबर भागों में, कोण को ntheta बराबर भागों में बाँटा जाता है। output (D, ntheta, nr) float32: axis 0 z है (ऊँचाई, इनपुट जैसा), row k का कोण θ = k·2π/ntheta, column j की त्रिज्या। sample points (z, cy + r sinθ, cx + r cosθ) हैं, volume के बाहर 0। जिन axes में D, H, W का मान 1 हो, वहाँ normalisation में 0 से भाग होता है (polar_unwrap से अलग, कोई जाँच नहीं)।

आगे: [:, :, j] लेने पर त्रिज्या j की बेलनाकार सतह (D×θ) की 2-D image बन जाती है, और 2-D scratch inspection और ncc_locate उपयोग किए जा सकते हैं।

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

• curvilinear_proj — py -3.11 examples_3d/curvilinear_proj.py

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

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

इसी category के (curvilinear)

polar_unwrap · fit_zernike


*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.