fullseye

integrate_normals — 3D photometric op

使い方

法線場 → 高さ場 z を Frankot-Chellappa 積分。→ z HxW(定数分の自由度あり・平均0基準)。

手順: 法線 (H,W,3) を勾配 p = -nx/nzq = -ny/nz に直し(|nz| < 1e-6 の 画素は nz を ±1e-6 に置き換えて零割を避ける)、FFT 領域で最小二乗解 Z(wx,wy) = (-j·wx·P - j·wy·Q) / (wx² + wy²) を求め(直流成分は 0)、逆変換して 平均を 0 に引く。mask (bool HxW) を与えると mask 外の勾配を 0 にしてから積分する (その領域は平坦として扱われる)。返り値は float64 の (H,W)。 注意点:

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(image2d を入力に取れる)

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

同カテゴリ(photometric)

photometric_stereo · surface_normals · render_lambertian


Provenance: photometric.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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