fullseye

aolp_to_azimuth — OPTICS shape_from_polarization op

使い方

Turn the angle of linear polarisation into the two candidate azimuths of the surface normal (the pi ambiguity), diffuse and specular differing by 90 degrees.

Diffuse light leaves polarised in the plane of incidence, so the normal’s image-plane azimuth is phi = psi or psi + 180; specular reflection is polarised across it, so phi = psi + 90 or psi + 270. Angles are measured from the image x axis (columns) toward the y axis (rows), the same sense as atan2(ny, nx) of a :mod:photometric normal map.

Returns a dict: azimuth_deg (2, *aolp.shape) in [0, 360) (row 1 is row 0 plus 180), offset_deg (0 or 90) and model. The pi ambiguity is a property of a linear polariser — psi and psi + 180 are the same measurement — and no setting of this operator removes it; that is :func:sfp_disambiguate’s job.

Raises ValueError: non-finite or non-real aolp_deg; unknown model.

ファミリ共通の入力契約(fail-closed)

optics の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

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

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

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

abcd_matrix · wavefront_stats · sfr_from_edge · paraxial_trace · seidel_coefficients · spot_stats · tolerance_analysis · wavefront_from_opd

同カテゴリ(shape_from_polarization)

sfp_dolp_model · dolp_to_zenith · sfp_render · sfp_normals · sfp_disambiguate · sfp_estimate_index · sfp_height


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

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