structured_light op• Data kinds: image2d → images
• 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) (implementation को सीधे call करना हो तो 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), registry से लेना हो तो ops3d.get("synthesize_fringes"))
• Ledger के ज़रिए return value: fullseye.ledger.synthesize_fringes(...) केवल घोषित out type images का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.synthesize_fringes.raw(...) का उपयोग करें, या fringe.synthesize_fringes को सीधे call करें।
ज्ञात height map से N-step phase-shift fringe image series synthesize करता है (test/sample generation के लिए)।
model: कुल phase φ(x,y) = φ_carrier + phase_gain·height। carrier φ_carrier field of view के आर-पार एक linear ramp है (freq periods)। हर frame I_n = bias + amplitude·cos(φ - δ_n), δ_n = 2πn/N है। इस sign convention से wrapped_phase(...) कुल phase φ को वैसा ही वापस देता है।
height: 2D array (मापे जाने वाले object का height field, कोई भी unit)।
n_steps: phase-shift images की संख्या N (>=3)।
freq: field of view की चौड़ाई के आर-पार carrier periods की संख्या (fringes की संख्या)। 0 का मतलब कोई carrier नहीं (सिर्फ़ height)।
phase_gain: height→phase conversion gain (rad/unit)। decode की तरफ़ के calibration k = 1/phase_gain से मेल खाता है।
bias: औसत luminance a (default 0.5)।
amplitude: fringe amplitude b (default 0.5)। bias±amplitude [0,1] में रहे तो स्वाभाविक है।
axis: carrier की दिशा (1 = column direction x के साथ, default; 0 = row direction y)।
noise: जोड़े गए Gaussian noise का standard deviation (0 पर noise नहीं)।
seed: noise के लिए random seed।
return_phase: True होने पर (images, total_phase) लौटाता है (tests और debugging के लिए)।
return value: (N, H, W) float array (range [0,1] पर clip किया गया)। return_phase=True पर phase भी।
• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं
• 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 के स्रोत।
• structured_light — py -3.11 examples_3d/structured_light.py
images को input के रूप में लेते हैं)fuse_to_voxel · photometric_stereo · wrapped_phase · graycode_decode · decode_fringe · carve · visual_hull
structured_light)wrapped_phase · unwrap_phase_2d · graycode_decode · decode_fringe · absolute_phase · triangulate_column
*Provenance: fringe.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.