synthesize_fringes — 3D structured_light op

Data kinds: image2dimages

Call: import fullseye as fs; fs.ledger.synthesize_fringes(height, n_steps=4, freq=1.0, phase_gain=1.0, bias=0.5, amplitude=0.5, axis=1, noise=0.0, seed=None, return_phase=False) (to call the implementation directly, import fringe; fringe.synthesize_fringes(height, n_steps=4, freq=1.0, phase_gain=1.0, bias=0.5, amplitude=0.5, axis=1, noise=0.0, seed=None, return_phase=False); from the registry, ops3d.get("synthesize_fringes"))

Return value through the ledger: fullseye.ledger.synthesize_fringes(...) returns **only the declared out type images** (the underlying function also returns auxiliary values). When you need what was dropped, use fullseye.ledger.synthesize_fringes.raw(...) or call fringe.synthesize_fringes directly.

Usage

Synthesise an N-step phase-shifted fringe image series from a known height map (for tests and sample generation).

> The detailed description below is the original text — the summary and the headings are translated.

モデル: 総位相 φ(x,y) = φ_carrier + phase_gain·height。搬送波 φ_carrier は視野を横切る線形

ランプ(freq 周期)。各フレームは I_n = bias + amplitude·cos(φ - δ_n), δ_n = 2πn/N。

この符号規約により wrapped_phase(...) は総位相 φ をそのまま復元する。

height: 2D 配列(計測対象の高さ場、任意単位)。

n_steps: 位相シフト枚数 N(>=3)。

freq: 視野幅を横切る搬送波の周期数(縞本数)。0 なら搬送波なし(height のみ)。

phase_gain: 高さ→位相の変換ゲイン(rad/単位)。復号側の較正 k = 1/phase_gain に対応。

bias: 平均輝度 a(既定 0.5)。

amplitude: 縞振幅 b(既定 0.5)。bias±amplitude が [0,1] に収まると自然。

axis: 搬送波の方向(1 = 列方向 x に沿う既定、0 = 行方向 y)。

noise: 付加ガウスノイズの標準偏差(0 で無ノイズ)。

seed: ノイズ用乱数シード。

return_phase: True なら (images, total_phase) を返す(テスト・デバッグ用)。

返り値: (N, H, W) float 配列(値域 [0,1] にクリップ)。return_phase=True なら位相も。

Background guides (the physics and conventions behind this op)

depth_sensors — 深度センサの知識 — 測距原理・実機の値・欠測の出方

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

Runnable examples (verified samples that actually call this op)

structured_lightpy -3.11 examples_3d/structured_light.py

Ops the type connects to (they accept images as input)

fuse_to_voxel · photometric_stereo · wrapped_phase · graycode_decode · decode_fringe · carve · visual_hull

Same category (structured_light)

wrapped_phase · unwrap_phase_2d · graycode_decode · decode_fringe · absolute_phase · triangulate_column


*Provenance: fringe.py — 3D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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