polar_unwrap — 3D curvilinear op

• Data kinds: image2d → image2d

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

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

उपयोग

image के annulus/disc को (θ×r) rectangle में unwrap करता है (industrial: label/ring/rotating body का inspection)।

परिधि की दिशा में फैले feature को "ऊर्ध्वाधर" खींचकर सामान्य 2D विधियाँ (line search/correlation) लागू करने देता है। grid_sample। θ axis में endpoint नहीं है (row k का कोण = k·2π/ntheta) = 0° और 360° को दोबारा sample न करने वाला periodic grid (θ दिशा में FFT/circular correlation की शर्त पूरी करता है। 2026-08-30 सुधार, पुराने संस्करण में पहली row = अंतिम row)।

Raises ValueError: इनपुट 2-D न हो, 2x2 से छोटा हो, या NaN/Inf/float32 overflow हो।

Args: center=(cy, cx) (row, column) क्रम में है (default image का केंद्र ((H−1)/2, (W−1)/2))। r_in-r_out (pixel, default min(H,W)/2 − 1) को nr बराबर भागों में, कोण को ntheta बराबर भागों में बाँटा जाता है। output (ntheta, nr) float32: row k का कोण θ = k·2π/ntheta, column j की त्रिज्या r = r_in + j·(r_out − r_in)/(nr−1), sample points (cy + r sinθ, cx + r cosθ) हैं (θ=0 +column दिशा है, θ बढ़ने पर +row दिशा की ओर घूमता है)। image के बाहर 0 भरा जाता है (bilinear)।

आगे: row दिशा (θ) में line search और ncc_locate, θ दिशा के 1-D correlation से rotation कोण।

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

fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · fit_zernike · matcap_shade · antialias

इसी category के (curvilinear)

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