fullseye

lockin_separate — OPTICS lockin op

使い方

Separate coded lights and the uncoded rest by least squares against zero-mean codes -> dict of maps.

Models every pixel as x_k = dc + sum_l a_l code_l[k] and solves for dc and the coefficients a_l by least squares (so the codes need not be orthogonal, only independent of each other and of a constant). A light switched on where code is +1 and off where it is -1 with on-state image L has a = L / 2 (on_image = 2 a). The table holds coefficients (n_codes, H, W), on_image (the same times 2), dc (uncoded mean level: ambient plus half of every coded light), residual_rms (what the model does not explain: a flicker or drift the codes do not carry) and condition (of the design matrix). Codes that are constant, of the wrong length, or so dependent that condition exceeds 1e8 are refused.

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

同カテゴリ(lockin)

lockin_demodulate · lockin_amplitude · lockin_phase · lockin_noise_floor · lockin_walsh_codes · lockin_ring_synthesize · lockin_ring_normals · lockin_thermal_wave


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

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