fullseye

speckle_field — OPTICS coherent op

使い方

Laser speckle intensity from a rough surface seen through a circular pupil (image2d).

Each pattern is a random phase screen (roughness_rad=None: uniform phase on [0, 2π) = fully developed; a number σφ: Gaussian phase of that standard deviation = partially developed) filtered by the coherent transfer function circ(ρ/ρc) and squared. polarizations (1 or 2) × n_patterns independent intensities are averaged (C = 1/√M for fully developed speckle). With pixel_oversample = s the field is drawn on an s-times finer grid and averaged over each s×s block — the pixel’s area integration (cutoff stays in cycles per output pixel and must be ≤ 0.5·s). The mean intensity is normalised to 1 in expectation (not per image).

Ground truth (tests/test_coherent.py): exponential intensity (KS) with C = 1, gamma of order M with C = 1/√M, intensity autocorrelation = Airy amplitude squared, the Rice-type closed form for finite roughness, and pixel integration against :func:speckle_reduction’s exact integral.

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

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

詳しい使い方ガイド

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

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

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

fraunhofer_pattern · pupil_psf · pupil_blur · psf_to_mtf · edge_spread · veiling_glare_index · emva_pair_statistics · emva_defect_pixels

同カテゴリ(coherent)

coherent_image · speckle_statistics · laser_line_coherent · triangulation_speckle_limit · speckle_reduction


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

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