Topic · Geometry

Two-view geometry

Everything on this site about two-view geometry, in the order to read it: a page is listed after the pages it builds on. The figures below are the ones those pages use to explain it; each is live: move a slider and it recomputes.

In reading order

  1. Read

The figures these pages use

Pulled from the pages above. Move a slider and the figure recomputes, exactly as on its page.

From Epipolar Geometry — A Point Becomes a Line › 1. The Plane Through Both Cameras

(0.3, -0.2)4.01
Camera: focal length and principal point
500320240
Camera 1: move it and turn it
0.00.00.00.00.0
Camera 2: move it and turn it
1.00.00.0100.0
A point in one picture is a line in the other. Camera 1 (blue) and camera 2 (rust) look at the same point X. Everything camera 1 could mean by its pixel x₁ lies on one ray, and camera 2 sees that ray as the line l′. Drag x₁ in camera 1's picture, or X in the scene, and l′ moves; play the depth and x₂ slides along l′ without leaving it. The grey lines belong to four more points. Move camera 2 forward and every line fans out from its epipole; zoom camera 2's picture out to find e′. Drag the background to turn the scene. Open the camera panels to move the cameras, or change the focal length and the principal point.

From Epipolar Geometry — A Point Becomes a Line › 3. The Essential Matrix From Three Arrows

Camera: focal length and principal point
500320240
Camera 1: move it and turn it
0.00.00.00.00.0
Camera 2: move it and turn it
1.00.00.0100.0
Three arrows in one plane. In camera 1's axes, camera 1's ray x̂₁ (blue), the baseline from C₁ to C₂ (ink) and camera 2's ray R₂ᵀx̂₂ (rust) all lie in the epipolar plane, so the box they span is flat and its volume is zero. Drag the match x₂ off the line l′ in camera 2's picture: camera 2's ray tips out of the plane and x̂₂ᵀEx̂₁ stops being zero. Drag the background to turn the scene. Open the camera panels to move the cameras, or change the focal length and the principal point.

From Triangulation — Two Rays That Almost Meet › 1. Four Rows and One Null Vector

(0, 0.5)
Camera: focal length and principal point
500320240
Camera 1: move it and turn it
0.00.00.00.00.0
Camera 2: move it and turn it
1.00.00.0100.0
Two rays that almost meet. Camera 1 (blue) and camera 2 (rust) look at X. Camera 2's pixel carries a little noise: drag it in the close-up of camera 2's picture. Across the line l′ the rays stop meeting and a gap opens; along l′ they still meet, but X̂ slides in depth. Slide the noise along the line, then across it: across opens a 4 mm gap; along leaves almost no gap but puts X̂ 16.6 mm off, nearly all in depth. Move camera 2 farther from camera 1 and the error along l′ shrinks. Drag the background to turn the scene, or drag a camera to move it. Open the camera panels to move the cameras, or change the focal length and the principal point.

From Triangulation — Two Rays That Almost Meet › 5. The Angle Between the Rays

0.5
Camera: focal length and principal point
500320240
Camera 1: move it and turn it
0.00.00.00.00.0
Camera 2: move it and turn it
1.00.00.0100.0
The angle between the rays. Seen from above: each camera's ray is really a thin wedge, as wide as the pixel noise allows, and the point can be anywhere in the diamond where the two wedges overlap. The close-up shows that diamond. Bring camera 2 toward camera 1: the angle closes and the diamond stretches along the rays; move it away and the diamond shrinks. Drag the background to turn the scene, or drag a camera to move it. Open the camera panels to move the cameras, or change the focal length and the principal point.

From From Matches to Motion — Four Cameras, One Right Answer › 1. Eight Matches, One Matrix

0.5
Camera: focal length and principal point
500320240
Camera 1: move it and turn it
0.00.00.00.00.0
Camera 2: move it and turn it
1.00.00.0100.0
Eight matches, one matrix. The 32 corners of the target, matched between camera 1 (blue) and camera 2 (rust). F is fitted to all of them; six of its lines are drawn in camera 2's picture over the true ones (grey). Add noise, switch to raw pixels, or spoil one match and watch the lines swing. Drag a camera in the plan seen from above. Open the camera panels to move the cameras, or change the focal length and the principal point.

From From Matches to Motion — Four Cameras, One Right Answer › 3. From E to Four Cameras

2 / 4 · R_a, −u₃
Camera: focal length and principal point
500320240
Camera 1: move it and turn it
0.00.00.00.00.0
Camera 2: move it and turn it
1.00.00.0100.0
Four cameras from one E. E splits into two rotations and a direction ±u₃, so camera 2 could be in four places. The blue camera is camera 1; the rust one is the candidate you picked, and the small pictures show all four. Step through: the matching rays meet in front of both cameras only once. Drag the background to turn the scene, or drag a camera. Open the camera panels to move the cameras, or change the focal length and the principal point.

From From Matches to Motion — Four Cameras, One Right Answer › 5. Two Photos Cannot Tell a House From a Doll's House

1.0
Camera: focal length and principal point
500320240
Camera 1: move it and turn it
0.00.00.00.00.0
Camera 2: move it and turn it
1.00.00.0100.0
A house or a doll's house. Scale the whole scene, the point, the target and the distance between the cameras, by the same λ. The blue and rust pictures stay pixel for pixel the same, so two photos cannot say how big the world is. Play the scale, drag the background to turn the scene, or drag a camera. Open the camera panels to move the cameras, or change the focal length and the principal point.

From Stereo Depth — Rectification and Z = fB/d › 1. Turn Both Pictures Until the Rows Agree

0
Camera: focal length and principal point
500320240
Camera 1: move it and turn it
0.00.00.00.00.0
Camera 2: move it and turn it
1.00.00.0100.0
Turn camera 2 until the rows agree. Camera 1 (blue) already faces straight ahead; camera 2 (rust) is turned 10° in. Turning a camera about its centre needs no new photo, only a remap of its pixels. Press play: camera 2 turns back by 10°, and every point in its picture slides onto the row the same point has in camera 1's picture. Drag the background to turn the scene, or drag a camera to move it. Open the camera panels to move the cameras, or change the focal length and the principal point.

From Stereo Depth — Rectification and Z = fB/d › 2. Disparity

40.5
Camera: focal length and principal point
500320240
Camera 1: move it and turn it
0.00.00.00.00.0
Camera 2: move it and turn it
1.00.00.00.00.0
Depth is fB over d. Two cameras facing the same way, B apart. The match in camera 2's picture sits on the same row, d pixels to the left; depth is Z = fB/d. A matching error of Δd pixels smears the point along camera 1's ray (the thick rust band); the strip under the picture enlarges that band. Play Z: d collapses while the error band runs away. Drag the background to turn the scene, or drag a camera to change the baseline. Open the camera panels to move the cameras, or change the focal length and the principal point.

Tags that go with it

3-D reconstruction 3Projective geometry 1Stereo vision 1