The FFT calculates the discrete Fourier transform (DFT) of an image.
Since it is a separable transform (calculated on rows and columns independently) the explanation is the same for 1D signals.
The DFT of a signal, $X[k]$, is the projection of the signal $x[n]$ onto a complex frequency: $X[k]=\sum_n x[n]e^{-2\pi jnk/N}$.
$k/N$ can be considered to be the frequency. Since $k=0...N-1$ it starts with the lowest frequency (DC or the mean of the signal, $e^0$) and gets the highest frequency - a basis function $[-1,1,-1,1,-1,1,...]$, on the central frequency, $k=N/2$: $e^{2\pi j \frac{1}{2}n }=e^{j\pi n}$. In your example the result has been shifted (using fftshift
) so that the lowest frequency is in the middle of the image, and the highest frequencies are in the border.
So, the range is the spatial frequency $0..N-1$ for each dimension. Since the result is complex you can present it using a magnitude image and a phase image, but the axes are the same. A certain point in the 2D transform image $(u,v)$ represents a frequency $e^{2\pi j(xu/N+vy/M)}=e^{2\pi j ux/N}e^{2\pi j vy/M}$ which turns out to be a spatial frequency with a certain direction and "speed".
E.g., $X[u,v]$ where $u=5, v=10, N=M=80$ represents the projection of the image onto the following basis function (here shown is the real part):

In your image, you can see most of the frequencies are concentrated near the origin (i.e. low frequencies), because most of the image is flat. Since there are edges (high frequencies) you can see some high magnitude lines on the transform image.
You can compare it to an image with high frequency content, such as white noise, in which there will be much more high frequency content.