lf_plenoptic_design — LIGHTFIELD depth op

• Datenarten: keine → table (ein Operator, der allein durch seine Argumente bestimmt ist — er nimmt kein Bild und keine Daten entgegen)

• Aufruf: import fullseye as fs; fs.ledger.lf_plenoptic_design(focal_mm=50.0, f_number=8.0, object_mm=300.0, pixel_um=3.45, mla_pitch_um=27.6, sensor_px=(2048, 2448), *, subpixel_px=0.1) (die Implementierung direkt: import lightfield; lightfield.lf_plenoptic_design(focal_mm=50.0, f_number=8.0, object_mm=300.0, pixel_um=3.45, mla_pitch_um=27.6, sensor_px=(2048, 2448), *, subpixel_px=0.1); aus dem Register: opslightfield.get("lf_plenoptic_design"))

Verwendung

Dimensioniert eine plenoptische Kamera: welche Winkel-/Ortsauflösung und welchen Tiefenbereich man erhält.

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

The plenoptic trade in one table. A microlens spanning mla_pitch_um / pixel_um pixels turns that many pixels into that many *directions*, so the sensor's pixel count is unchanged but the image is U*V times smaller and carries U*V viewpoints. This operator composes optics rather than re-deriving it: optics.thin_lens places the image, and optics.depth_of_field is called twice — once with the pixel pitch as the circle of confusion (the depth of field of a single refocused slice) and once with the *microlens* pitch (the range over which refocusing can still recover a sharp image). Their ratio is the refocusing gain, and it comes out at the angular resolution, which is the textbook result — measured 2026-09-01 at f = 50 mm, N = 8, s_o = 300 mm: an 8x8 angular grid gives refocus_gain = 8.0038, 10x10 gives 10.0075 and 6x6 gives 6.0016.

Returns a dict — angular_u / angular_v (whole pixels per microlens, from floor) · angular_exact (the unrounded ratio) and pitch_is_integer (whether the MLA pitch is a whole number of pixels; it usually is not, which is why real decoding needs sub-pixel calibration) · spatial_w / spatial_h (microlenses = sub-aperture image size) · n_views · resolution_loss (U*V) · image_mm / magnification / working_distance_mm from the thin lens · aperture_mm (f/N) · baseline_mm (viewpoint spacing across the pupil, aperture / (U - 1)) · focal_px_subaperture (focal length in units of the *microlens* pitch, the pixel of a sub-aperture image) · dof_pixel_mm / dof_refocus_mm and refocus_gain · and depth_precision_mm, the object-side distance change that moves the disparity by *subpixel_px* pixels (Z^2 * dp / (focal_px * baseline)) — the honest depth resolution at *object_mm*.

Raises ValueError: any non-positive or non-finite length, an mla_pitch_um smaller than two *pixel_um* (fewer than 2 directions is not a light field), a sensor smaller than one microlens, a non-positive *subpixel_px*, object_mm == focal_mm (propagated from optics.thin_lens: the object images at infinity), and an angular resolution of 1 in either axis, where the baseline would be a 0/0.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie lightfield_depth

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)

• lightfield_depth — py -3.11 examples/lightfield_depth.py

• poc_compound_eye — py -3.11 examples/poc_compound_eye.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

—

Gleiche Kategorie (depth)

lf_depth_from_focus · lf_epi_slope · lf_disparity_to_depth · lf_all_in_focus


*Provenance: lightfield.py — LIGHTFIELD 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.