polar_unwrap — 3D curvilinear op

데이터 종류: image2dimage2d

호출: import fullseye as fs; fs.ledger.polar_unwrap(image, center=None, r_in=0.0, r_out=None, ntheta=360, nr=64, device='cpu')(구현을 직접 호출하려면 import match3d; match3d.polar_unwrap(image, center=None, r_in=0.0, r_out=None, ntheta=360, nr=64, device='cpu'), 원장에서 가져오려면 ops3d.get("polar_unwrap"))

GPU: 이 연산자는 GPU 경로가 있습니다(device="cuda")

사용법

이미지의 원환/원판을 (θ×r) 사각형으로 펼칩니다(산업: 라벨/링/회전체 검사).

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

円周方向に並ぶ特徴を「縦」に伸ばして通常の 2D 手法(直線探索/相関)を適用できる。grid_sample。

θ 軸は endpoint 無し(行 k の角度 = k·2π/ntheta)= 0° と 360° を重複サンプルしない

周期グリッド(θ 方向 FFT/循環相関の前提を満たす。2026-08-30 修正、旧版は先頭行=末尾行)。

Raises ValueError: 入力が 2-D でない・2x2 未満・NaN/Inf/float32 桁あふれ。

引数: `center=(cy, cx) は **(行, 列)** の順(既定は画像中心 ((H−1)/2, (W−1)/2)`)。

`r_inr_out(画素、既定 min(H,W)/2 − 1)を nr 等分、角度を ntheta` 等分。

出力 `(ntheta, nr) float32: 行 k の角度 θ = k·2π/ntheta`、列 j の半径

`r = r_in + j·(r_out − r_in)/(nr−1)、サンプル点は (cy + r sinθ, cx + r cosθ)`(θ=0 が

+列方向、θ が増えると +行方向へ回る)。画像外は 0 で埋まる(bilinear)。

後段: 行方向(θ)の直線探索・`ncc_locate`、θ 方向の 1-D 相関で回転角。

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

curvilinear_projpy -3.11 examples_3d/curvilinear_proj.py

타입이 이어지는 다음 연산자(image2d 를 입력으로 받는 것)

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

같은 카테고리(curvilinear)

cylinder_unwrap · fit_zernike


*Provenance: match3d.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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