Cross-Ratio Ruler

A photograph squeezes distances, but it keeps the cross-ratio of any four points on a line. Given the horizon and two marks of known distance, this ruler reads true distances straight off the picture.

Why it works

Perspective is projective. A camera sends a point at distance t along a straight road to the height y = (a t + b)/(c t + d) in the picture. Maps of this form are the projective transformations of a line, the group PGL(2,ℝ). They distort lengths and ratios of lengths.

The invariant scale. For four points on a line, the cross-ratio (A,B;C,D) = (AC·BD)/(BC·AD) is unchanged by every projective map. It plays the same role for PGL(2) that length plays for sliding and angle plays for rotating.

The ruler. Take the picture heights of three known points: the near mark at 0 m, the sign at 10 m, and the horizon, which is the picture of the point at infinity. For any fourth height y, the true distance is t = 10 · [(y − y₀)(y₁₀ − y∞)] / [(y₁₀ − y₀)(y − y∞)]. Change the camera: the picture changes, and the ruler still reads correctly.

The naive reading. Measuring picture heights proportionally (treating the photo as if it were to scale) is right near the sign and badly wrong far away. The error grows without bound toward the horizon.