curvilinear opimage2d → tableimport fullseye as fs; fs.ledger.fit_zernike(disk_image, n_max=6, device='cpu', nr=48, nt=72) (実装を直接呼ぶなら import match3d; match3d.fit_zernike(disk_image, n_max=6, device='cpu', nr=48, nt=72)、台帳から引くなら ops3d.get("fit_zernike"))device="cuda")円板画像 → Zernike 係数(光学/波面計測の極座標曲面近似)。返り値 {(n,m): coef}。
直交多項式で円板上の曲面(波面収差、レンズ形状)を少数係数に。tilt/defocus/astigmatism/ coma/spherical 等が特定の (n,m) に対応し、回転で m が混ざる(帯域=回転不変)。
honest 開示(2026-08-30 レビュー実測): 離散サンプリング(既定 nr=48, nt=72)では 理論上直交のモード間に最大 ~10% のクロストークが残る(例: 純 (2,0) defocus 入力で 係数回収 0.95、リーク先は (4,0))。支配モードの特定には十分だが、係数の定量比較が 要るときは nr/nt を上げる(誤差は解像度に対し単調減少)。
Raises ValueError: 入力が 2-D でない・2x2 未満・NaN/Inf/float32 桁あふれ。
py -3.11 examples_3d/curvilinear_proj.pytable を入力に取れる)fuse_to_voxel · mesh_select_lod
curvilinear)polar_unwrap · cylinder_unwrap
Provenance: match3d.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.