polarization_stokes — SPECULAR polarization op

• Data kinds: polsweep → stokes

• Call: import fullseye as fs; fs.ledger.polarization_stokes(images, angles_deg=(0.0, 45.0, 90.0, 135.0), max_violation_frac=0.0) (implementation को सीधे call करना हो तो import specularity; specularity.polarization_stokes(images, angles_deg=(0.0, 45.0, 90.0, 135.0), max_violation_frac=0.0), registry से लेना हो तो opsspecular.get("polarization_stokes"))

उपयोग

polariser sweep का scene-integrated Stokes vector। → (4,), optics.stokes_analyze के लिए तैयार।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

Stokes parameters are linear in radiance, so the spatial mean of the frames has a Stokes vector that is the mean of the per-pixel ones — the vector a non-imaging polarimeter looking at the whole field would report. Fitting I(t) = 0.5 (S0 + S1 cos 2t + S2 sin 2t) gives (S0, S1, S2) directly.

S3 is always exactly 0, and that is a limitation, not a measurement. A set of linear analysers cannot see circular polarisation; a quarter-wave plate is needed. The returned vector is therefore the linear part of the truth, and optics.stokes_analyze will report handedness="linear" for it no matter what the scene actually did. Returning an invented S3 would be worse, and returning a 3-vector would break the Stokes contract the optics family is built on.

The result satisfies that contract by construction — S0 >= sqrt(S1^2 + S2^2 + S3^2), i.e. degree of polarisation at most 1 — because the same non-negativity check that guards polarization_separate is exactly the condition for it. That is why optics.stokes_analyze accepts the output without a further test.

Raises ValueError: as polarization_separate.

उपयोग की विस्तृत guide

• specular_photometric family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_polarization_specular — py -3.11 examples/poc_polarization_specular.py

• polarization_camera_pipeline — py -3.11 examples/polarization_camera_pipeline.py

• specular_photometric — py -3.11 examples/specular_photometric.py

वे अगले ops जिनसे type जुड़ता है (stokes को input के रूप में लेते हैं)

—

इसी category के (polarization)

polarization_render · polarization_separate · polarization_dolp_map


*Provenance: specularity.py — SPECULAR operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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