refocus op• Data kinds: none → image2d (an op determined by its arguments alone — it takes no image or data input)
• Call: import lightfield; lightfield.lf_aperture_mask(angular=(5, 5), shape='circle', *, radius=None, inner=0.0, sigma=None, normalize=True) (or opslightfield.get("lf_aperture_mask"))
Angular weighting mask — the synthetic aperture you stop down or shape.
Returns a `(V, U)` 2-D array of per-view weights, indexed the same way as
the light field's angular axes, for :func:lf_synthetic_aperture. The
radius is measured in angular steps from the centre ``((V-1)/2,
(U-1)/2)`, so radius=0` selects the single centre view (an infinitely
small aperture: everything in focus, no light) and the default
`radius = max(V-1, U-1)/2` is the largest circle that fits.
• `circle` — hard-edged disc, the physical iris.
• `square` — Chebyshev disc; separable, the cheapest to reason about.
• `gaussian — apodised pupil (sigma` in angular steps, default
`radius/2`); no ringing in the defocus PSF.
• `annulus` — ring between *inner* and *radius*; a coded aperture whose
defocus PSF has more high-frequency content, which is what makes
depth-from-defocus work better.
With `normalize=True` (default) the weights sum to exactly 1, so a masked
reduction is a weighted mean and its result is directly comparable with
:func:lf_refocus. Set it to `False` to keep 0/1 selection weights.
Raises `ValueError: an angular shape outside [1, MAX_ANGULAR]`, a
negative *radius* / *inner* / *sigma*, `inner >= radius`, an unknown
*shape*, and — explicitly rather than returning a field of zeros — a mask
that selects no view at all (an opaque aperture), which would make every
downstream weighted mean a 0/0.
• 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
image2d as input)lf_from_mla · lf_disparity_to_depth · lf_all_in_focus
refocus)lf_refocus · lf_focal_stack · lf_synthetic_aperture
*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.