depth op• 데이터 종류: 없음 → table(인자만으로 정해지는 연산자 —— 이미지나 데이터 입력을 받지 않습니다)
• 호출: 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)(또는 opslightfield.get("lf_plenoptic_design"))
플렌옵틱 카메라의 치수 결정: 각도/공간 분해능과 깊이 범위를 얼마나 살 수 있는가.
> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.
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 :mod: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.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• lightfield_depth — py -3.11 examples/lightfield_depth.py
table 를 입력으로 받는 것)—
depth)lf_depth_from_focus · lf_epi_slope · lf_disparity_to_depth · lf_all_in_focus
*Provenance: lightfield.py — LIGHTFIELD 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.