capture_degrade — SYMBOL symbol_capture op

• Datenarten: image2d → image2d

• Aufruf: import fullseye as fs; fs.ledger.capture_degrade(image, *, defocus_px=0.0, motion_px=0.0, motion_deg=0.0, gauss_px=0.0, illum_slope=0.0, illum_deg=0.0, vignette=0.0, exposure=1.0, full_well_e=None, read_noise_e=0.0, bits=None, seed=0) (die Implementierung direkt: import symrender; symrender.capture_degrade(image, *, defocus_px=0.0, motion_px=0.0, motion_deg=0.0, gauss_px=0.0, illum_slope=0.0, illum_deg=0.0, vignette=0.0, exposure=1.0, full_well_e=None, read_noise_e=0.0, bits=None, seed=0); aus dem Register: opssymbol.get("capture_degrade"))

• GPU: nein (nur CPU-Referenzimplementierung)

Verwendung

Wendet Aufnahme-Degradation (Beleuchtung, Unschärfe, Sensorrauschen) auf ein Reflexionsbild an (image2d).

> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.

Apply the capture chain to a reflectance image, in physical order:

1. illumination: E = exposure · (1 + illum_slope · s) · (1 − vignette · ρ²) with s in [−0.5, 0.5] across the image along illum_deg and ρ = radius / half diagonal (so illum_slope = 0.4 means 40 % more light on one side than the other);

2. lens: defocus as a uniform disc of diameter defocus_px (the geometric blur circle c = A·|Δz|/z' in pixels), uniform motion over motion_px along motion_deg, and a Gaussian of standard deviation gauss_px (residual aberrations / diffraction), each area-integrated, borders replicated;

3. sensor (only if full_well_e is given): the irradiance 1.0 fills full_well_e electrons; Poisson shot noise, Gaussian read noise read_noise_e (electrons), saturation at full well, and bits-bit quantisation if given. Output = electrons / full_well_e, in [0, 1].

Deterministic for a given seed. Without full_well_e the result is noise-free (read_noise_e must then be 0).

空の入力(辺が 0)は ValueError。拒否(ValueError): 2-D でない、非有限、負のぼけ量、|illum_slope| >= 2、vignette が [0, 1) の外、full_well_e < 10、read_noise_e < 0 または full_well_e 無しで > 0、bits が 1..16 の外。

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie symbol_reading

Referenzen (Beispieldaten, Literatur)

• 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.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_symbol_lot_ocr — py -3.11 examples/poc_symbol_lot_ocr.py

• poc_symbol_package_1d — py -3.11 examples/poc_symbol_package_1d.py

• poc_symbol_part_dpm — py -3.11 examples/poc_symbol_part_dpm.py

Typkompatible Folge-Operatoren (nehmen image2d als Eingabe)

barcode_scan_profiles · read_barcode1d · qr_locate · qr_sample · qr_read · dm_locate · dm_sample · dm_read

Gleiche Kategorie (symbol_capture)

render_symbol


*Provenance: symrender.py — SYMBOL 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.