I am try to grasp the idea of frequency domain for images. I think get the basics, but now I've stuck with a question that I can't find appropriate answer anywhere. How are frequency domain and complex numbers in relationship? I've read this article from DSPguide and I understand that after applying DFT to an image in spatial domain, we get two planes: real and imaginary plane. By doing some calculations, we can get amplitude and phase planes. For what is the phase plane used for?
Why don't you try it? Since points in the frequency domain correspond to sine waves in the image domain, it is reasonable to assume that the phase of the entries in the frequency domain controls the phase of the resulting sine wave.
f1 = zeros(255, 255); % Create image1 in the frequency domain - maintain conjugate symmetry % so we'll get a real image when we call ifft f1(5,1) = 255*255*.5 * exp(-j*pi/4); f1(252,1) = 255*255*.5 * exp(j*pi/4); % The second image is essentially the same except the phase is 0. f2 = abs(f1); % no phase figure(1); imshow(ifft2(f2)); title('phase = 0'); figure(2); imshow(ifft2(f1)); title('phase = pi/4')
The result is and :
And you can clearly see that the difference is the sine wave phase only.
If you look at the values along the y-axis you'll see
The real and imaginary plane are also the symmetric and anti-symmetric planes. Image content that is symmetric around the center lines will show up in the real plane. Image content that is opposite in brightness across the center lines will appear in the imaginary plane. Data that is neither or some combination of both will end up in both, with the phase angle indicating the mix or a shift (or rotation wrapping around the edges) from symmetric to anti-symmetric.