deflectometry op• 데이터 종류: image2d × image2d → normalmap
• 호출: import fullseye as fs; fs.ledger.deflectometry_phase_to_slope(phase_x, phase_y, rig=None, period_mm=10.0, z_ref=0.0)(구현을 직접 호출하려면 import deflectometry; deflectometry.deflectometry_phase_to_slope(phase_x, phase_y, rig=None, period_mm=10.0, z_ref=0.0), 원장에서 가져오려면 opsspecular.get("deflectometry_phase_to_slope"))
화면의 절대 위상 2장(u 방향, v 방향 줄무늬) → 면 격자 위의 법선 맵 (H, W, 3).
> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.
phase_x / phase_y: カメラの画素ごとの絶対位相 [rad] (次数を確定したもの。fringe.absolute_phase で粗い縞から決める)。画面の座標は u = φ_x·周期 / 2π、v = φ_y·周期 / 2π (画面の中心が 0)。NaN の画素は無効。
面の格子(deflectometry_render と同じ、視野の中心が原点、間隔 field / (W − 1))の各点 P = (x, y, z_ref) をカメラに投影して位相を双線形に読み、画面の点 S を出して、入射 S→P と反射 P→C から法線を match3d.normal_from_reflection で作る(n ∝ 反射 − 入射)。返り値は photometric と同じ規約(+z が上、x が列、y が行)なので、そのまま photometric.integrate_normals(高さへ)や slope_to_curvature(曲率へ)に流せる。位相が NaN・視野の外の点は NaN。
★高さと傾きの不定性: 面の高さを z_ref(数か (H, W) の配列)と仮定して法線を出す。本当の面が Δz ずれていると、法線は Δz sin θ / d だけ(視野の中心で)傾いて出る —— 1 台のカメラと 1 枚の画面では分けられない(deflectometry_sensitivity が係数を返す)。局所の凹みの形はほぼ影響を受けないが、面全体の傾きと曲がりは位置の不確かさに引きずられる。
Raises: ValueError —— 位相が 2-D でない・形が違う・無限大を含む、周期が正でない、z_ref が有限でない・形が違う、rig が不正。
• specular_photometric 패밀리 가이드
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_phase_measuring_deflectometry — py -3.11 examples/poc_phase_measuring_deflectometry.py
normalmap 를 입력으로 받는 것)brdf_blinn_phong · brdf_microfacet · dichromatic_render · slope_to_curvature
deflectometry)deflectometry_rig · deflectometry_screen_pattern · deflectometry_render · slope_to_curvature · deflectometry_sensitivity
*Provenance: deflectometry.py — SPECULAR 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.