decode opimage2d → lightfieldimport fullseye as fs; fs.ledger.lf_from_mla(raw, angular=(5, 5), *, offset=(0, 0), crop=False) (実装を直接呼ぶなら import lightfield; lightfield.lf_from_mla(raw, angular=(5, 5), *, offset=(0, 0), crop=False)、台帳から引くなら 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.
:func: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 :data:MAX_SPATIAL on a
side, and a decoded size over :data:MAX_LF_ELEMENTS.
py -3.11 examples/lightfield_depth.pylightfield を入力に取れる)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. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.