Foundations
Focal Length and Field of View
How a lens's focal length and the sensor's size set the angle of view of a camera, in horizontal, vertical and diagonal forms, and how sensor formats, crop factors, 35 mm equivalent focal lengths and the focus distance change it.
beginner
The focal length of a lens and the size of the sensor behind it together set a camera’s field of view, the angle of the cone of directions that reaches the sensor. It is also called the angle of view; Levoy’s lecture slides, followed here, write it as FOV. A longer focal length or a smaller sensor gives a narrower angle and a larger image of each object; a shorter focal length or a larger sensor gives a wider one. Because the same lens covers different angles on different sensors, photographers compare cameras through the crop factor and the 35 mm equivalent focal length, two conventions that are easy to apply and easy to misread.
The pinhole camera model gives the basic formula, , and camera parameters gives the same angle from the focal length in pixels. This article owns the photographer’s quantities: the horizontal, vertical and diagonal angles, sensor formats, crop factors and their two conventions, equivalent focal lengths, the change of the angle with focus that the thin lens model predicts, and the limits of the formula. An example computes them for four formats and checks the formula by projecting markers at known angles onto each sensor.
Definition
The focal length of a lens is the distance behind it at which rays arriving parallel to the axis converge (Levoy, Image Formation, slide 26). It is a property of the lens alone, given in millimetres on the barrel.
The field of view of a camera is the angle subtended at the centre of projection by an extent of the sensor. For a rectangular sensor of width , height and diagonal there are three such angles, horizontal, vertical and diagonal, each of the form
where is the distance from the lens to the sensor. With the lens focused at infinity, , and this is Levoy’s , in which his is the sensor size (Image Formation, slide 30). The diagonal angle is the one Levoy’s slide 31 gives in a figure for lenses from 17 mm to 1000 mm on a 24 × 36 mm frame; he credits the slide to “London”, which his slide credits list as London, Stone and Upton’s Photography. The same words are also used for a length: vision system design gives the field of view as the size of the area imaged on the object, in millimetres, which depends on the working distance as well.
A sensor format is the size of the sensor’s active area. The crop factor of a format, in Levoy’s definition (slide 34), is
where full frame is the 24 × 36 mm frame of 35 mm still film. The 35 mm equivalent focal length of a lens on a smaller format is , the focal length that would give the same angle on full frame. Levoy (slide 45) uses it in the hand-holding rule of thumb, his “shortest exposure = 1/f” with the 35 mm equivalent focal length; his example is 1/180 s for a 180 mm lens, beside a photograph taken with a Leica 90 mm lens on a Panasonic GF1 with a 2× crop factor.
Intuition
Think of the sensor as a window and the centre of the lens as the eye. Every scene point is imaged where its chief ray, the straight line through the lens centre, meets the sensor, so the sensor sees exactly the directions whose chief rays land on it. Moving the window farther from the eye, a longer focal length, or shrinking it, a smaller sensor, narrows that bundle of directions. Levoy’s slides 30 and 33 make the two cases, and his slide 39 sums them up: focal length determines field of view, but the result depends on sensor size.
Two cameras therefore frame the same scene identically when the ratio of sensor size to image distance is the same. That is all the crop factor encodes. A small sensor behind a short lens and a large sensor behind a long lens see the same angle. In our reading, this is why phones, whose sensors are a few millimetres across and whose thinness limits the focal length of each module (digital camera), still reach ordinary angles of view.
Formal Definition
Conventions
The article uses the thin-lens conventions of the thin lens model: the lens is in the plane , distances are positive when real, is the object distance and the image distance, related by . The sensor is centred on the optical axis (the principal point at the image centre), the lens is rectilinear, meaning free of distortion, and the image is inverted, . Angles of view are full angles, in degrees; lengths are in millimetres.
The angle of view at finite focus
A focused thin-lens camera projects like a pinhole at the lens centre with its image plane at , not at (the thin lens model derives this). The angle of view therefore uses :
Levoy’s slide 30 writes the formula with , which is the infinity-focus case; the form with is our derivation from the pinhole equivalence. Levoy’s slides 28 and 29 supply its two ingredients: a lens is focused by changing the lens-to-sensor distance, and the image of an object at a finite distance lies beyond the focal length. Dividing the tangents gives the ratio of the near-focus angle to the infinity-focus angle in closed form (our derivation):
A 50 mm lens focused at 0.5 m has mm and sees an angle whose half-angle tangent is 10% smaller than at infinity. The thin lens model states the same effect as the image growing by on refocusing.
Crop factor by width and by diagonal
Since the angle depends only on , a format with extent behind focal length sees the same angle along that extent as full frame, of extent , behind . The crop factor is that ratio, and the convention says which extent is matched. Levoy’s definition matches the width, . Matching the diagonal gives , since the full-frame diagonal is mm. Levoy’s slide 34 defines it by width; the diagonal convention is included here because his slide 31 measures the angle of view diagonally and the two conventions give different numbers.
The two agree exactly only when the format has full frame’s 3:2 shape (our derivation). Their ratio is
so for formats less elongated than 3:2, such as 4:3, and for more elongated ones. No single equivalent focal length reproduces all three angles of a format whose shape differs from 3:2: matching one dimension mismatches the others.
Equivalent focal length and zoom
The 35 mm equivalent focal length is a statement about angle of view only. Under Levoy’s width convention it reproduces the horizontal angle, and under the diagonal convention the diagonal angle. The zoom of a zoom lens changes ; Levoy (Optics II, slide 46) describes an optically compensated zoom whose in-focus plane stays more or less stationary as the focal length changes, and notes (slide 47) that most modern zoom lenses are focus-compensated. Digital zoom crops the image instead: keeping the central of the frame’s width gives exactly the horizontal angle of a lens of focal length on the full sensor, since the angle depends only on (our derivation), but with times fewer pixels across. Cropping and resizing also change the intrinsic matrix, which camera parameters works out.
Properties
- Sensor size. At fixed focal length a smaller sensor sees a smaller angle (Levoy, Image Formation, slide 33). Levoy adds that smaller sensors have either fewer pixels or smaller ones, which are noisier. His slide 34 lists, as of 2013, full frame at 24 × 36 mm, APS-C (Nikon D40) at 15.5 × 23.7 mm with a crop factor of about 1.5, micro four-thirds (Panasonic GX1) at 13 × 17.3 mm at about 2, a point-and-shoot (Canon A590) at 5.75 × 4.31 mm at about 6, and the iPhone 5’s sensor at 4.5 × 3.4 mm.
- Focal length and perspective. Changing the focal length scales the image but does not change perspective; moving the camera does. Levoy (Image Formation, slides 36–37) shows a wide-angle lens close to a subject against a telephoto lens moved back so that the subject keeps its size: the subject matches, but perspective relationships change. Moving back while changing the focal length to keep one depth at constant size is the dolly zoom, or “Vertigo effect”. The pinhole camera model explains why the “compressed” look of telephoto photographs comes from distance, and visionbook (§5.3.2) notes that orthographic projection is a good model for telephoto lenses, where apparent size is roughly independent of distance.
- Focus changes the angle. By the formula above, focusing closer narrows the angle of view of a fixed lens on a fixed sensor. This is a thin-lens result; real lenses are thick assemblies (thin lens model, Limits of the Model), so in our reading the size of the effect for a given lens depends on its design.
- Depth of field across formats. Equal angle of view does not mean equal depth of field. Levoy (Optics I, slide 69) argues from the approximation that as the sensor shrinks, the focal length shrinks with it to keep a comparable field of view, and the acceptable circle of confusion shrinks with the pixel size, so depth of field grows linearly with decreasing sensor size (with and unchanged, in our reading of the formula). That conclusion rests on those two assumptions, which he states as what typically happens on consumer cameras; depth of field works through the limits. Aperture and f-number, exposure and image formation cover the f-number and the circle of confusion.
- Teleconverters. A teleconverter, fitted between camera and lens, increases , narrowing the field of view and increasing magnification, without changing the focusing range, and raises the f-number (Levoy, Optics I, slide 64).
- “Telephoto” is a design, not only a length. In Levoy’s Optics II (slides 43–44), a telephoto lens is a combination that makes the back focal distance shorter than , so that a long lens is physically shorter while keeping its focal length and magnification; the reversed telephoto makes the back focal distance longer than , so that wide-angle lenses leave room for a reflex mirror.
- The limit near 180°. As grows, approaches 90°, so a rectilinear lens cannot reach a full angle of 180°: as the pinhole camera model notes, a ray at 90° to the axis would land at infinity. Fisheye lenses use other mappings from angle to image radius, which lens distortion describes.
Examples
Formats and crop factors, checked by projection
The script takes a 50 mm lens and the four formats on Levoy’s slide 34 that carry a printed crop factor: full frame, APS-C (D40), micro four-thirds (GX1) and the compact (A590). It computes the horizontal, vertical and diagonal angles of view, the crop factor under both conventions and the equivalent focal length each gives, and compares two sets of Levoy’s printed values with the formulas. It then checks the angle-of-view formula independently of the arctangent: fans of markers at field angles 0.05°, 0.15°, …, 89.95° on both sides of the axis, along the horizontal, vertical and diagonal directions of each sensor, are projected through a pinhole at , and the markers landing on the sensor are counted. A marker counts if its image lies within and ; the analytic count is twice the number of fan angles below half the angle of view. This is done for focus at infinity () and at 500 mm ( mm), where the markers lie on the plane of focus.
The checks and hypotheses, fixed before the script was first run, were:
- C0 (data check): no marker lies within ° of a boundary angle, so no count depends on a tie;
- C1: Levoy’s approximate crop factors (~1.5, ~2, ~6) are reproduced by both conventions when rounded to the printed precision;
- C2: the diagonal angles on Levoy’s slide 31 for 24 × 36 mm are reproduced by the formula at the printed precision;
- H1: the width and diagonal crop factors differ by more than 3% for the two 4:3 formats and by less than 1% for full frame and APS-C;
- H1b: the width-equivalent focal length reproduces the horizontal angle, and the diagonal-equivalent the diagonal angle, to within °, while for the 4:3 formats neither reproduces the vertical angle (mismatch above 0.3°);
- H2: the projected counts equal the analytic counts in all 24 cases;
- H3: at 0.5 m focus the half-angle tangents shrink exactly by (relative error at most , H3a), and fewer markers land on every sensor than at infinity (H3b).
import os
os.environ["OPENBLAS_NUM_THREADS"] = os.environ["OMP_NUM_THREADS"] = "1"
import numpy as np
# Units: mm and degrees. Pinhole (chief-ray) projection onto a sensor at image distance z_i
# behind the centre of projection; the sensor is centred on the optical axis.
f = 50.0 # lens focal length
formats = { # width x height (Levoy, image formation slide 34)
"full frame": (36.0, 24.0), "APS-C (D40)": (23.7, 15.5),
"micro 4/3 (GX1)": (17.3, 13.0), "compact (A590)": (5.75, 4.31)}
W0, H0 = formats["full frame"]
D0 = np.hypot(W0, H0) # full-frame diagonal, 43.27 mm
def fov(size, z_i):
"""Angle of view (degrees) across a sensor extent `size` at image distance z_i."""
return np.degrees(2 * np.arctan(size / (2 * z_i)))
def z_img(z_o):
"""Thin-lens image distance; z_o = inf means focus at infinity (z_i = f)."""
return f if np.isinf(z_o) else f * z_o / (z_o - f)
print("1. Angle of view, crop factor and equivalent focal length (focus at infinity)")
print(" format aspect FOV h FOV v FOV d k_width k_diag "
"(k_w-k_d)/k_d")
rows = {}
for name, (w, h) in formats.items():
d = np.hypot(w, h)
kw, kd = W0 / w, D0 / d
rows[name] = (w, h, d, kw, kd)
print(f" {name:16s} {w / h:.4f} {fov(w, f):8.4f} {fov(h, f):8.4f} {fov(d, f):8.4f}"
f" {kw:.5f} {kd:.5f} {100 * (kw - kd) / kd:+7.3f}%")
print("\n Full-frame equivalent focal length f*k, and the full-frame FOV it gives minus this format's")
print(" format convention f_eq dFOV h dFOV v dFOV d")
h1b_exact = 0.0
h1b_vert = []
for name, (w, h, d, kw, kd) in rows.items():
for conv, k in (("width", kw), ("diagonal", kd)):
fe = f * k
dh = fov(W0, fe) - fov(w, f)
dv = fov(H0, fe) - fov(h, f)
dd = fov(D0, fe) - fov(d, f)
h1b_exact = max(h1b_exact, abs(dh if conv == "width" else dd))
if name in ("micro 4/3 (GX1)", "compact (A590)"):
h1b_vert.append(abs(dv))
print(f" {name:16s} {conv:10s} {fe:9.4f} {dh:+9.4f} {dv:+9.4f} {dd:+9.4f}")
# Checks against Levoy's printed values
print("\n2. Levoy's printed values")
lev_crop = {"APS-C (D40)": (1.5, 1), "micro 4/3 (GX1)": (2, 0), "compact (A590)": (6, 0)}
c1 = True
for name, (v, nd) in lev_crop.items():
_, _, _, kw, kd = rows[name]
okw, okd = round(kw, nd) == v, round(kd, nd) == v
c1 &= okw and okd
print(f" crop factor {name:16s} printed ~{v} width {kw:.4f} -> {round(kw, nd)} {okw} "
f"diagonal {kd:.4f} -> {round(kd, nd)} {okd}")
print(f" C1 printed crop factors reproduced at their precision: {'held' if c1 else 'failed'}")
lev_fov = {17: 104, 28: 75, 50: 47, 85: 28, 135: 18, 300: 8, 500: 5, 1000: 2.5}
c2_fail = []
for fl, v in lev_fov.items():
c = fov(D0, fl)
r = round(c * 2) / 2 if fl == 1000 else round(c)
if r != v:
c2_fail.append(fl)
print(f" diagonal FOV {fl:5d} mm on 24 x 36: computed {c:8.3f}, rounded {r:5}, printed {v:5}"
f" {'held' if r == v else 'failed'}")
print(f" C2 slide 31 values reproduced at their precision: "
f"{'held' if not c2_fail else 'failed at ' + ', '.join(f'{x} mm' for x in c2_fail)}")
# Fans of markers at known field angles, projected through a pinhole at z_i
theta = 0.05 + 0.1 * np.arange(900) # degrees off axis, 0.05 ... 89.95
print("\n3. Marker fans projected through a pinhole at z_i and counted on each sensor")
min_gap = np.inf
ok2 = True
ok3b = True
tanratio_err = 0.0
counts = {}
for z_o in (np.inf, 500.0):
z_i = z_img(z_o)
print(f" focus at {'infinity' if np.isinf(z_o) else f'{z_o:.0f} mm'}: z_i = {z_i:.6f} mm")
print(" format dir FOV (deg) markers on sensor analytic match")
for name, (w, h, d, kw, kd) in rows.items():
for lab, phi, s in (("h", 0.0, w), ("v", np.pi / 2, h), ("d", np.arctan2(h, w), d)):
half = fov(s, z_i) / 2
min_gap = min(min_gap, np.abs(theta - half).min())
t = np.radians(np.concatenate([theta, -theta]))
dirs = np.stack([np.sin(t) * np.cos(phi), np.sin(t) * np.sin(phi), np.cos(t)], 1)
P = dirs * (z_o / dirs[:, 2:3] if np.isfinite(z_o) else 1.0) # points on the focus plane
x = -z_i * P[:, 0] / P[:, 2] # inverted image
y = -z_i * P[:, 1] / P[:, 2]
on = int(np.sum((np.abs(x) <= w / 2) & (np.abs(y) <= h / 2)))
ana = 2 * int(np.sum(theta < half))
ok2 &= on == ana
counts[z_o, name, lab] = on
print(f" {name:16s} {lab} {2 * half:9.4f} {on:17d} {ana:8d} {on == ana}")
if np.isfinite(z_o):
r = np.tan(np.radians(half)) / np.tan(np.radians(fov(s, f) / 2))
tanratio_err = max(tanratio_err, abs(r - f / z_i) / (f / z_i))
ok3b &= on < counts[np.inf, name, lab]
print(f" C0 data check, smallest |marker angle - half FOV| = {min_gap:.2e} deg (>= 1e-05): "
f"{'held' if min_gap >= 1e-5 else 'failed'}")
print(f" H2 projected counts equal analytic counts in all 24 cases: {'held' if ok2 else 'failed'}")
# Hypotheses H1, H1b, H3
print("\n4. Hypotheses")
rd = {n: 100 * abs(r[3] - r[4]) / r[4] for n, r in rows.items()}
h1 = (rd["micro 4/3 (GX1)"] > 3 and rd["compact (A590)"] > 3
and rd["full frame"] < 1 and rd["APS-C (D40)"] < 1)
print(f" H1 |k_w-k_d|/k_d: " + ", ".join(f"{n} {v:.3f}%" for n, v in rd.items())
+ f" (>3% for the 4:3 formats, <1% otherwise): {'held' if h1 else 'failed'}")
print(f" H1b matched FOV residual {h1b_exact:.1e} deg (<= 1e-9), smallest |dFOV v| for 4:3 "
f"formats {min(h1b_vert):.4f} deg (> 0.3): "
f"{'held' if h1b_exact <= 1e-9 and min(h1b_vert) > 0.3 else 'failed'}")
print(f" H3a tan(FOV/2) ratio 0.5 m / infinity against f/z_i = {f / z_img(500.0):.12f}: "
f"max rel err {tanratio_err:.1e} (<= 1e-12): {'held' if tanratio_err <= 1e-12 else 'failed'}")
print(f" H3b fewer markers on every sensor at 0.5 m than at infinity: "
f"{'held' if ok3b else 'failed'}")
Output (NumPy 2.3.5; the script runs in well under a second):
1. Angle of view, crop factor and equivalent focal length (focus at infinity)
format aspect FOV h FOV v FOV d k_width k_diag (k_w-k_d)/k_d
full frame 1.5000 39.5978 26.9915 46.7930 1.00000 1.00000 +0.000%
APS-C (D40) 1.5290 26.6662 17.6215 31.6227 1.51899 1.52785 -0.580%
micro 4/3 (GX1) 1.3308 19.6300 14.8138 24.4211 2.08092 1.99938 +4.078%
compact (A590) 1.3341 6.5818 4.9358 8.2204 6.26087 6.02096 +3.985%
Full-frame equivalent focal length f*k, and the full-frame FOV it gives minus this format's
format convention f_eq dFOV h dFOV v dFOV d
full frame width 50.0000 +0.0000 +0.0000 +0.0000
full frame diagonal 50.0000 +0.0000 +0.0000 +0.0000
APS-C (D40) width 75.9494 +0.0000 +0.3356 +0.1753
APS-C (D40) diagonal 76.3927 -0.1493 +0.2330 +0.0000
micro 4/3 (GX1) width 104.0462 +0.0000 -1.6557 -0.9299
micro 4/3 (GX1) diagonal 99.9690 +0.7841 -1.1241 +0.0000
compact (A590) width 313.0435 +0.0000 -0.5453 -0.3140
compact (A590) diagonal 301.0480 +0.2616 -0.3706 +0.0000
2. Levoy's printed values
crop factor APS-C (D40) printed ~1.5 width 1.5190 -> 1.5 True diagonal 1.5279 -> 1.5 True
crop factor micro 4/3 (GX1) printed ~2 width 2.0809 -> 2.0 True diagonal 1.9994 -> 2.0 True
crop factor compact (A590) printed ~6 width 6.2609 -> 6.0 True diagonal 6.0210 -> 6.0 True
C1 printed crop factors reproduced at their precision: held
diagonal FOV 17 mm on 24 x 36: computed 103.678, rounded 104, printed 104 held
diagonal FOV 28 mm on 24 x 36: computed 75.381, rounded 75, printed 75 held
diagonal FOV 50 mm on 24 x 36: computed 46.793, rounded 47, printed 47 held
diagonal FOV 85 mm on 24 x 36: computed 28.558, rounded 29, printed 28 failed
diagonal FOV 135 mm on 24 x 36: computed 18.208, rounded 18, printed 18 held
diagonal FOV 300 mm on 24 x 36: computed 8.249, rounded 8, printed 8 held
diagonal FOV 500 mm on 24 x 36: computed 4.955, rounded 5, printed 5 held
diagonal FOV 1000 mm on 24 x 36: computed 2.479, rounded 2.5, printed 2.5 held
C2 slide 31 values reproduced at their precision: failed at 85 mm
3. Marker fans projected through a pinhole at z_i and counted on each sensor
focus at infinity: z_i = 50.000000 mm
format dir FOV (deg) markers on sensor analytic match
full frame h 39.5978 396 396 True
full frame v 26.9915 270 270 True
full frame d 46.7930 468 468 True
APS-C (D40) h 26.6662 266 266 True
APS-C (D40) v 17.6215 176 176 True
APS-C (D40) d 31.6227 316 316 True
micro 4/3 (GX1) h 19.6300 196 196 True
micro 4/3 (GX1) v 14.8138 148 148 True
micro 4/3 (GX1) d 24.4211 244 244 True
compact (A590) h 6.5818 66 66 True
compact (A590) v 4.9358 50 50 True
compact (A590) d 8.2204 82 82 True
focus at 500 mm: z_i = 55.555556 mm
format dir FOV (deg) markers on sensor analytic match
full frame h 35.9046 360 360 True
full frame v 24.3773 244 244 True
full frame d 42.5518 426 426 True
APS-C (D40) h 24.0815 240 240 True
APS-C (D40) v 15.8830 158 158 True
APS-C (D40) d 28.5968 286 286 True
micro 4/3 (GX1) h 17.6998 176 176 True
micro 4/3 (GX1) v 13.3465 134 134 True
micro 4/3 (GX1) d 22.0419 220 220 True
compact (A590) h 5.9248 60 60 True
compact (A590) v 4.4428 44 44 True
compact (A590) d 7.4008 74 74 True
C0 data check, smallest |marker angle - half FOV| = 1.05e-04 deg (>= 1e-05): held
H2 projected counts equal analytic counts in all 24 cases: held
4. Hypotheses
H1 |k_w-k_d|/k_d: full frame 0.000%, APS-C (D40) 0.580%, micro 4/3 (GX1) 4.078%, compact (A590) 3.985% (>3% for the 4:3 formats, <1% otherwise): held
H1b matched FOV residual 3.6e-15 deg (<= 1e-9), smallest |dFOV v| for 4:3 formats 0.3706 deg (> 0.3): held
H3a tan(FOV/2) ratio 0.5 m / infinity against f/z_i = 0.900000000000: max rel err 2.5e-16 (<= 1e-12): held
H3b fewer markers on every sensor at 0.5 m than at infinity: held
The first table shows the crop-factor conventions parting with the shape of the format. Full frame has both factors equal to 1; APS-C at 23.7 × 15.5 mm is slightly more elongated than 3:2 (aspect 1.5290), so its width factor is the smaller; the two 4:3 formats are less elongated, so their width factor is the larger, by about 4%. Every printed case follows the sign of the ratio derived above. H1 held. The equivalent focal lengths make the consequence concrete: a 50 mm lens on micro four-thirds is “104 mm” by width and “100 mm” by diagonal, and the width-equivalent lens on full frame would see a vertical angle 1.66° narrower than the micro four-thirds camera does, because full frame is relatively shorter. H1b held: each convention reproduces its own dimension to rounding error (°), and for the 4:3 formats neither reproduces the vertical angle.
The checks against Levoy’s slides are mixed. C1 held: both conventions round to his ~1.5, ~2 and ~6. In our reading, for micro four-thirds and the compact his approximate factors sit nearer the diagonal values (1.9994 against 2.0809, and 6.0210 against 6.2609) than the width values his definition gives, while for APS-C the width value (1.5190) is nearer 1.5 than the diagonal value (1.5279), and both round to 1.5. C2 failed at 85 mm, where the formula gives 28.558° and the slide prints 28°, and held at the other seven focal lengths.
The projection check held. C0 held, with the closest marker ° from a boundary, and H2 held: in all 24 cases the number of markers whose chief rays land on the sensor equals the number inside the computed angle, along the diagonal as well as the two axes, so the formula is the angle subtended by the sensor’s edges and corners. Focusing at 0.5 m narrows every angle: H3a held, with the tangent ratio equal to 0.9 to , and H3b held in all twelve cases; the full-frame horizontal angle, for example, falls from 39.5978° to 35.9046°, and 36 fewer markers land across it.
Process note: the plan for this example was written before the pilot, and its bars were set from a planning script that ran the same formats, focal length, focus distances and marker grid while the plan was being written, before the pilot. The plan says: “All bars were set after reachable.py printed the values they bound, so the example is presented as an illustration of the formulas, not as a test”. It also predicted, from that script, that C2 would fail at 85 mm. The plan lists five departures from the batch plan’s description of this example: the “ring of angular markers” is built as fans along the horizontal, vertical and diagonal directions, so that each count corresponds to one angle; the formats are the four with a printed crop factor, with the iPhone 5 left to the prose; checks C0, C1, C2, H1b and H3a were added, and the planned narrowing is stated as the count comparison H3b; the focal length is 50 mm and the near focus 500 mm; and the equivalent focal lengths are computed at infinity focus only. Before the pilot ran, three unused variables were deleted from the script, which changed no value or print. The editor approved the example as piloted, and the code and output above are the first run, which a repeat reproduced identically.
Common Misconceptions
- “Focal length sets the field of view.” Only together with the sensor size: the same 50 mm lens covers 39.6° horizontally on full frame and 6.6° on the compact in the example. A lens’s focal length is fixed; the angle of view belongs to the lens and sensor together.
- “A crop sensor lengthens the lens.” The lens and its image are unchanged; the smaller sensor records a smaller central part of that image. The equivalent focal length describes the angle of the cropped frame, which is why digital zoom by cropping gives the same angle as a longer lens, with fewer pixels.
- “35 mm equivalent means the same photograph.” It matches the angle along one dimension. The example shows that for a 4:3 format no single equivalent focal length matches the horizontal, vertical and diagonal angles at once, and Levoy (Optics I, slide 69) shows that depth of field differs too under his stated assumptions.
- “There is one crop factor per format.” Levoy defines it by width; matching the diagonal gives a value about 4% different for 4:3 formats. A quoted crop factor or equivalent focal length needs its convention.
- “A lens’s field of view is fixed.” It depends on the image distance, which changes with focus: in the thin-lens model, focusing a 50 mm lens at 0.5 m narrows the full-frame horizontal angle from 39.6° to 35.9°.
- “Field-of-view figures are horizontal.” Levoy’s slide 31 measures the angle diagonally, and Tanks and Temples quotes an 84° diagonal field of view for a 12 mm lens. Check which extent a quoted figure uses before comparing it with .
- “Telephoto lenses compress distance.” The flattening comes from the distance of the camera, not from the focal length (see the pinhole camera model); and in Levoy’s usage “telephoto” names a lens design whose back focal distance is shorter than its focal length.
- “Field of view is the receptive field.” The receptive field of a network unit is the region of input pixels it depends on; it is unrelated to the optical angle of view.
Where It Is Used
- Calibration and geometry. The focal length in pixels in the intrinsic matrix is the focal length divided by the pixel pitch, and the angle of view follows from it and the image size (camera parameters). Camera calibration estimates it for one focus and zoom setting, which is why the angle-of-view change with focus matters for measurement.
- System design. Vision system design chooses the sensor, the focal length and the working distance so that the field of view on the object covers the part with enough pixels.
- Cameras and phones. Digital camera describes phones that carry several modules with different focal lengths and fields of view, from ultra-wide to telephoto, on sensors far smaller than full frame.
- Rendering and neural scene models. Neural radiance fields and other renderers set the focal length from a chosen angle of view by inverting the formula above.
- Panoramas and wide views. Image stitching combines several views into a wider field of view than one lens gives, and lens distortion models the fisheye lenses that approach or pass 180°.
- Datasets and simulation. Datasets record the lenses and fields of view of their cameras (Tanks and Temples), and embodied agents in simulation are specified by the angle of view of their sensors (visual navigation).
Related
- Camera Intrinsic and Extrinsic Parameters
The parameters of the pinhole camera matrix P = K[R | t], split into intrinsics K, which map camera coordinates to pixels, and extrinsics R and t, which place the camera in the world.
- Designing a Computer Vision System
How a working vision system is designed from its requirements, through the choice of sensor, optics, lighting, compute and model, to the data it is trained on, its validation in the field and its maintenance once deployed, with the requirement arithmetic for a measurement station worked through in code.
- Digital Camera
The camera as an imaging system, from lens, shutter and sensor to the image signal processor that demosaics, white-balances, colour-corrects, tone-maps and compresses its output; RAW against processed images, metadata, machine-vision interfaces, camera classes, and where processing breaks the assumptions of vision methods.
- Lens Distortion
The systematic deviation of a real lens from the pinhole model's straight-line projection, which bends straight lines in the image and is modeled, estimated, and removed as part of camera calibration.
- Image Formation
How light leaving a scene becomes an array of pixel values, through illumination and reflectance, the lens, the sensor and its colour filters, sampling and quantization, and the camera's own processing.
- Image Sensor
How the chip behind a camera lens turns light into numbers, from photosites and quantum efficiency to CCD and CMOS readout, full-well capacity, noise, gain and the ADC, colour filters, rolling and global shutters, and EMVA 1288 measurements.
References
- Levoy, M. (2013). Image Formation. Lecture slides, CS 178: Digital Photography, Stanford University, Spring 2013 (cited by slide number).
- Levoy, M. (2013). Optics I: Lenses and Apertures. Lecture slides, CS 178: Digital Photography, Stanford University, Spring 2013 (cited by slide number).
- Levoy, M. (2013). Optics II: Practical Photographic Lenses. Lecture slides, CS 178: Digital Photography, Stanford University, Spring 2013 (cited by slide number).
- Torralba, A., Isola, P. & Freeman, W. T. (2024). Foundations of Computer Vision. MIT Press. Chapter 5, Imaging, §5.3.2 (read in the online edition).
- London, Stone & Upton (2008). Photography (9th ed.). Prentice Hall. As listed in the credits of Levoy's Image Formation slides (not read).