symbol_capture op• Data kinds: image2d → image2d
• Call: 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) (to call the implementation directly, 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); from the registry, opssymbol.get("capture_degrade"))
• GPU: none (CPU reference implementation only)
Apply capture degradation (illumination, blur, sensor noise) to a reflectance image (image2d).
> The detailed description below is the original text — the summary and the headings are translated.
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 の外。
• 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.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• 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
image2d as input)barcode_scan_profiles · read_barcode1d · qr_locate · qr_sample · qr_read · dm_locate · dm_sample · dm_read
symbol_capture)*Provenance: symrender.py — SYMBOL 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.