Chapter 8The 2D Fourier Transform: Images
Everything so far has been a signal over time. An image is brightness over an (x, y) grid instead — but the same idea works: any image is a sum of simple wave patterns. The trick that makes it practical is that the 2D transform separates into two passes of the exact 1D DFT from Chapter 7 — once across each row, once down each column.
A 2D sine wave
In one dimension, a sine wave is a height that oscillates over time. In two dimensions, it's a brightness that oscillates over space — stripes. Two numbers set the pattern: how fast it oscillates left-right ($u$) and how fast it oscillates up-down ($v$).
Any image is a sum of these
Pick a test pattern below. Next to it is its magnitude spectrum — brighter means more of that frequency is present, and the very center is "no oscillation at all" (the image's average brightness). Frequencies get faster the further out from the center you go, in every direction.
Click and drag on the spectrum to set a cutoff radius — everything outside (or inside) it gets zeroed before the image is rebuilt.
That double sum looks new, but it isn't: because it's separable, a program never actually computes it directly. It runs Chapter 7's exact 1D DFT on every row of the image, then runs it again on every column of the result. Two passes of old math, no new algorithm required.