cylinder_unwrap — 3D curvilinear op

• Datenarten: voxel → voxel

• Aufruf: import fullseye as fs; fs.ledger.cylinder_unwrap(vol, center=None, r_in=0.0, r_out=None, ntheta=180, nr=32, device='cpu') (die Implementierung direkt: import match3d; match3d.cylinder_unwrap(vol, center=None, r_in=0.0, r_out=None, ntheta=180, nr=32, device='cpu'); aus dem Register: ops3d.get("cylinder_unwrap"))

• GPU: ja (mechanischer GPU-Pfad aus der Allow-List, CuPy). device="auto" wählt die GPU ab der gemessenen Größe (16,777,216 Pixel)

Verwendung

Wickelt die Zylinderfläche eines Voxelvolumens in (Höhe × θ × r) ab — für die Innen- und Außenwandprüfung zylindrischer Teile und Rohre. Die Achse ist z (die D-Achse).

Die θ-Achse ist ein periodisches Gitter ohne Endpunkt (wie polar_unwrap, geändert am 30.08.2026).

Löst ValueError aus: Wenn die Eingabe einen NaN/Inf/float32-Überlauf aufweist.

Argumente: „vol“ ist „(D,H,W)“, „center=(cy, cx)“ ist (Zeile, Spalte) (Standard ist Scheibenmitte). „r_in“ ~ „r_out“ (Voxel, Standard „min(H,W)/2 − 1“) wird in „nr“ gleiche Teile geteilt, und der Winkel ist „ntheta“ Gleiche Teile. Ausgabe „(D, ntheta, nr)“ float32: Achse 0 ist z (Höhe, wie Eingabe), Winkel in Zeile k „θ = k·2π/ntheta“, Radius der Spalte j. Der Abtastpunkt ist „(z, cy + r sinθ, cx + r cosθ)“ und 0 außerhalb des Volumens. Die Achsen, bei denen D, H und W 1 sind, werden ebenfalls als Pixelkoordinaten interpoliert und eine Division durch 0 findet nicht statt. Zweiter Teil: Wenn Sie „[:, :, j]“ nehmen, wird die zylindrische Oberfläche mit dem Radius j zu einem 2D-Bild von (D×θ) und 2D-Fehlerprüfung/ „ncc_locate“ kann verwendet werden.

Eine leere Eingabe („vol“ mit 0 Elementen) führt zu einem ValueError.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• curvilinear_proj — py -3.11 examples_3d/curvilinear_proj.py

Typkompatible Folge-Operatoren (nehmen voxel als Eingabe)

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

Gleiche Kategorie (curvilinear)

polar_unwrap · fit_zernike


*Provenance: match3d.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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