Lens Sim

Renderer

Distortion

Intrinsics

Lens & Focus

Image dist: — mm
Hyperfocal: — m

Imager

Pixel pitch: — µm
HFOV: —°
VFOV: —°

Pose

Translation

MTF

Sagittal (lp/mm, contrast)
Tangential (lp/mm, contrast)

Toggles

Saved Lenses

📐 Cheat Sheet

Field of View

Horizontal FOV HFOV = 2 · atan( wmm / (2 · f) )
Vertical FOV VFOV = 2 · atan( hmm / (2 · f) )

Brown‑Conrady

Normalized coords (pinhole) xu = (u − cx) / fx    yu = (v − cy) / fy
Radial distortion r² = xu² + yu²  →  xd = xu · (1 + k₁r² + k₂r⁴ + k₃r⁶)
Tangential distortion tx = 2p₁xuyu + p₂(r² + 2xu²)
ty = p₁(r² + 2yu²) + 2p₂xuyu
Full model xd = xu · radial + tx    yd = yu · radial + ty

Kannala‑Brandt (fisheye)

Projection r = √(xu² + yu²)  →  θ = atan(r)
Distorted angle θd = θ · (1 + k₁θ² + k₂θ⁴ + k₃θ⁶ + k₄θ⁸)
Distorted pixel xd = (xu / r) · θd    yd = (yu / r) · θd

OpenCV Rational (OpenCV‑8)

Radial (rational) r² = x² + y²  →  radial = (1 + k₁r² + k₂r⁴ + k₃r⁶) / (1 + k₄r² + k₅r⁴ + k₆r⁶)
Full model xd = xu · radial + tx    yd = yu · radial + ty
(tx, ty same tangential as Brown‑Conrady)
Inverse distortion uses Newton iteration (BC, Rational) or Newton (KB)