structured_light op• Datenarten: image2d → images
• Aufruf: 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) (die Implementierung direkt: 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); aus dem Register: ops3d.get("synthesize_fringes"))
• Rückgabewert über das Register: fullseye.ledger.synthesize_fringes(...) liefert nur den Wert des deklarierten Out-Typs images (die zugrunde liegende Funktion gibt zusätzlich Hilfsinformationen zurück). Wird das Verworfene gebraucht, nutze fullseye.ledger.synthesize_fringes.raw(...) oder rufe fringe.synthesize_fringes direkt auf.
Synthetisiert aus einer bekannten Höhenkarte eine N-Schritt-phasenverschobene Streifenbildserie (für Tests und Beispielerzeugung).
Modell: Gesamtphase φ(x,y) = φ_carrier + phase_gain·height. Der Träger φ_carrier ist eine lineare Rampe quer über das Sichtfeld (freq Perioden). Jedes Frame ist I_n = bias + amplitude·cos(φ - δ_n), δ_n = 2πn/N. Mit dieser Vorzeichenkonvention stellt wrapped_phase(...) die Gesamtphase φ unverändert wieder her.
height: 2D-Array (Höhenfeld des Messobjekts, beliebige Einheit).
n_steps: Anzahl der Phasenschiebebilder N (>=3).
freq: Anzahl der Trägerperioden über die Sichtfeldbreite (Streifenzahl). 0 bedeutet keinen Träger (nur height).
phase_gain: Umrechnungsverstärkung Höhe→Phase (rad/Einheit). Entspricht der Kalibrierung k = 1/phase_gain auf der Dekodierseite.
bias: mittlere Leuchtdichte a (Standard 0.5).
amplitude: Streifenamplitude b (Standard 0.5). Natürlich, wenn bias±amplitude in [0,1] liegt.
axis: Richtung des Trägers (1 = entlang der Spaltenrichtung x, Standard; 0 = Zeilenrichtung y).
noise: Standardabweichung des addierten Gauß-Rauschens (0 = rauschfrei).
seed: Zufalls-Seed für das Rauschen.
return_phase: bei True wird (images, total_phase) zurückgegeben (für Tests und Debugging).
Rückgabewert: (N, H, W) float-Array (auf den Wertebereich [0,1] begrenzt). Bei return_phase=True auch die Phase.
• depth_sensors — Tiefensensoren — Messprinzipien, Werte realer Geräte, wie Messlücken entstehen
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• structured_light — py -3.11 examples_3d/structured_light.py
images als Eingabe)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. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.