I am new to computer vision and Fourier transform concept. I have examined some codes. In those codes, an image is performed Fast Fourier transform by using the function np.fft.fft2(). As a result of invoking this function, we get a two-dimensional array filled with complex values.

What do these complex values refer to ?

Are they frequency values ?


1 Answer 1


A 2D FFT consists in comparing 2D data with a discrete set of evenly spaced 2D complex exponentials $e_{u,v}$ (made of a cosine for the real part, and and a sine for the imaginary part). Behind the scene, this comparison is exact: a comparison of a 2D data with enough 2D complex exponentials bears the same information as the original data, albeit easier to interpret.

For each complex exponential (as numerous as pixels in the image), this comparison (or correlation) yields one complex coefficient $c_{u,v}$. The modulus of $c_{u,v}$ tells you about the proportion of amplitudes related to complex exponential $e_{u,v}$; the phase provides information on how the complex exponential contribution is shifted in the image. All in all, this provides you with a novel representation of the 2D data, as a sum of shifted exponentials with different amplitudes.

So, the complex values are "complex amplitudes", corresponding to frequency values indexed by the indices $_{u,v}$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.