decode op• Data kinds: image2d → lightfield
• Call: import fullseye as fs; fs.ledger.lf_from_mla(raw, angular=(5, 5), *, offset=(0, 0), crop=False) (to call the implementation directly, import lightfield; lightfield.lf_from_mla(raw, angular=(5, 5), *, offset=(0, 0), crop=False); from the registry, opslightfield.get("lf_from_mla"))
Decode a microlens-array raw frame into a (V, U, H, W) light field.
The plenoptic sensor stores, for microlens (t, s), a V x U block of pixels — one per direction through the main lens' exit pupil. So raw pixel (offset_y + t*V + v, offset_x + s*U + u) is exactly L[v, u, t, s]:
the decode is a pure re-sort, no interpolation, no data invented. lf_to_mla inverts it bit-exactly.
*offset* is the integer position of the first whole microlens; a real MLA is never aligned to pixel (0, 0). Sub-pixel MLA calibration is out of scope (see the module docstring) — this operator works on an already-rectified frame.
By default a raw frame whose usable size is not a whole multiple of the microlens pitch is a ValueError, because the alternative — quietly dropping the last partial row of microlenses — shifts every subsequent microlens centre and produces a light field that looks right and is wrong. Pass crop=True to opt in to that crop explicitly.
Raises ValueError: *raw* not 2-D or non-finite, *angular* outside [1, MAX_ANGULAR], a negative *offset*, an *offset* that leaves fewer than one whole microlens, a size that is not a multiple of the pitch (unless crop=True), a decoded sub-aperture image over MAX_SPATIAL on a side, and a decoded size over MAX_LF_ELEMENTS.
• lightfield_depth family guide
• 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.
• lightfield_depth — py -3.11 examples/lightfield_depth.py
lightfield as input)lf_to_mla · lf_stats · lf_subaperture · lf_center_view · lf_views · lf_epi · lf_refocus · lf_focal_stack
decode)*Provenance: lightfield.py — LIGHTFIELD 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.