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') (to call the implementation directly, import match3d; match3d.cylinder_unwrap(vol, center=None, r_in=0.0, r_out=None, ntheta=180, nr=32, device='cpu'); from the registry, ops3d.get("cylinder_unwrap"))
• GPU: this op has a GPU path (device="cuda")
Unwrap the cylindrical surface of a voxel volume into (height × θ × r) — for inspecting the inner and outer walls of cylindrical parts and pipes. The axis is z (the D axis).
The θ axis is a periodic grid without endpoint (same 2026-08-30 fix as polar_unwrap).
Raises ValueError: if the input contains NaN/Inf/float32 overflow.
Args: vol is (D,H,W), center=(cy, cx) is (row, column) within each z slice (default is the slice centre). r_in-r_out (voxels, default min(H,W)/2 − 1) is divided into nr equal parts, the angle into ntheta equal parts. Output (D, ntheta, nr) float32: axis 0 is z (height, same as the input), angle of row k θ = k·2π/ntheta, radius of column j. Sample points are (z, cy + r sinθ, cx + r cosθ); outside the volume is 0. Axes where D, H, W are 1 give a division by 0 in the normalisation (unlike polar_unwrap there is no check).
Downstream: taking [:, :, j] turns the cylindrical surface of radius j into a (D×θ) 2-D image, so 2-D scratch inspection and ncc_locate can be used.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• curvilinear_proj — py -3.11 examples_3d/curvilinear_proj.py
voxel as input)voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa
curvilinear)*Provenance: match3d.py — 3D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.