fullseye

film_thickness_map — OPTICS film op

使い方

分光画像(帯域ごとの反射率)か RGB 画像から、画素ごとの膜厚を出す(早見表 + 放物線の精密化)。

images: (B, H, W) の帯域画像の列。mode="spectral" なら各帯域は wavelengths_nm の波長での 反射率(狭帯域の分光カメラ)、mode="srgb" なら B = 3 で :func:film_color と同じ 線形 sRGB(D65・CIE 1931 の等色関数、Luther 条件を満たす理想の RGB カメラ)。 wavelengths_nm: 分光モードの帯域の中心 [nm] (B 個、昇順)。srgb モードでは使わない。 film / substrate / under: 積層(材料表の鍵)。最上層 film の厚さを求める。 thickness_min_nm / thickness_max_nm / step_nm: 早見表の膜厚の範囲と刻み。 ambiguity_rms: 「同じくらい合う候補」の閾: 画素の RMS 残差が最良 + この値以下の局所解を数える。 既定 0.01 は反射率 1 % の雑音の目安。 normalize: True なら画素と早見表をどちらも長さ 1 に揃えてから比べる(明るさ = 照明・露出・反射率の倍率が 分からないときに、色の向き(分光の形)だけで照合する)。rmse は長さ 1 の単位になる。 chunk: 1 回に照合する画素の数(メモリの上限)。

返り値 dict: thickness (H, W) / rmse (H, W) / n_candidates (H, W)(閾の中に入った局所解の数。 ★1 より大きい画素は色(帯域)だけでは膜厚が決まらない —— RGB では色が膜厚について周期的に繰り返すので ここが 2 以上になる)/ lut_thickness_nm(早見表の膜厚)。

ファミリ共通の入力契約(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

同カテゴリ(film)

multilayer_reflectance · film_color · film_thickness_fft · film_thickness_fit


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

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