POST 04 / 07CAMERA MODEL~7 min read

Pinhole Projection: K[R|t]

Three transformations turn a 3D world into a pixel grid: extrinsics place the camera in the world, perspective projects 3D onto the image plane, and intrinsics map that to pixels. Drag the camera and watch points project live.

Nishanth Vanipenta2026.05.01Interactive · 1 viz

The three transforms

ximg = K · [R | t] · Xworld

That single equation is the entire camera model. Everything else — calibration, stereo, SfM, AR — is just solving for one of the variables given the others.

Visualizer · drag the camera

Cyan points are 3D world points. The green pyramid is the camera frustum. The right panel shows the projected pixels.

VIZ_05 :: PINHOLE_PROJECTION—
fx300 cx140 cam yaw0° cam pitch0° cam Z8
Focal length (px) 300
Cam Z position 8.0
Scene
DRAG canvas to orbit camera

Intrinsic vs extrinsic

For checkerboard-style calibration, you collect many (world_pt, image_pt) pairs across poses and solve for K. Once K is fixed, given a single image of a known 3D pattern, cv2.solvePnP recovers (R, t) — the pose of the camera. That's perspective-n-point, and it's how AR markers, head-pose estimation, and robot tool localization all work under the hood.

Sources & further reading

← Camera Hardware 04 / 07 Next: Stereo →