fullseye

render_through_lens — OPTICS imaging_sim op

使い方

Render an ideal irradiance image as the sensor behind system would record it (image2d).

image (H×W, non-negative) is the ideal (paraxial) image on a sensor of pixel_pitch_um pixels centred on the optical axis; with field_of_view (half field to the sensor corner: degrees for an object at infinity, object height in mm otherwise) the picture is first zoomed so the corner sees that field. Pipeline: (a) inverse distortion remap (:func:distortion_map grid, scipy.ndimage.map_coordinates order 1); (b) spatially varying blur — a zones×zones lattice of tile centres, each with its own pixel-integrated :func:psf_from_opd (the +y-field PSF rotated to the tile azimuth), blended with bilinear (tent) weights so seams vanish; (c) relative illumination: "traced" = fraction of the field’s ray bundle that reaches the image (vignetting, from :func:raytrace.ray_bundle) normalised to the axis, times cos⁴ (obliquity, objects at infinity only), "cos4" = the classic law alone, "none"; (d) sensor, when noise is True or a dict {"full_well": 20000, "read_e": 3.0, "bits": 12, "exposure": 1.0, "dark_e": 0.0}: electrons = irradiance × exposure × full_well, Poisson shot noise (:func:photoncount.photon_sample), Gaussian read noise, quantisation to bits, returned as DN/(2^bits − 1). With noise=None the float irradiance is returned untouched (deterministic; the noisy path is deterministic for a given seed too).

oversample defaults to whatever keeps at least 2 PSF samples per pixel (max(4, ceil(2·λ·F#/pitch))). Ground truth: a δ image through the f/2 paraboloid gives the pixel-integrated Airy PSF; a checkerboard through it comes back undistorted (correlation > 0.99); energy is conserved to 1 % with illumination off; noise off is bit-reproducible.

ファミリ共通の入力契約(fail-closed)

optics の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

背景知識ガイド(この op の手前にある物理・規約)

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(image2d を入力に取れる)

fraunhofer_pattern · pupil_psf · pupil_blur · psf_to_mtf · illumination_uniformity · surface_defect · defocus_blur

同カテゴリ(imaging_sim)

psf_from_opd · distortion_map · defect_dataset · calibration_views


Provenance: lensimage.py — OPTICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.