I am trying to figure out the difference between the FFT of an image, say, cameraman.tif in MATLAB and the FFT of image when the image is Gaussian blurred. What is the effect of the averaging filter on the FFT computation?
4 Answers
Pardon me if I'm telling you anything here that you already know. Gaussian blurring is a form of lowpass filtering. This can be seen if you take the Fourier transform of a Gaussian, which gives another Gaussian with a new standard deviation: $\sigma_f = 1/(2\pi \sigma)$. A fat Gaussian in the image domain gives a narrow one in the frequency domain, and vice-versa.
As Tim Wescott pointed out, in general you can see the effect of filtering in the frequency domain by taking the (zero-padded) FFTs of your image and filter, and multiplying them together point-wise. For Gaussian blurring you can see that this product will attenuate higher frequencies and preserve low ones. But the transition from low to high frequencies is gradual, since a Gaussian doesn't have a sharp cutoff frequency like an "ideal" lowpass filter (which has a "box" or "tophat" shape in the frequency domain).
If you took the "perfect" Fourier transform of a blurred image, then the result would be the Fourier transform of the image multiplied by the Fourier transform of the blurring filter.
This can apply to your case, but it depends on the details of how you take your FFT and how you apply the blurring filter. In general, the results will be pretty close.
Where things can differ is that if you just take your image as a 2D matrix and take the FFT of it, the algorithm will treat the image as if the top row of pixels is contiguous with the bottom row, and the left column is contiguous with the right. If you took such an FFT and multiplied it by the FFT of a Gaussian filter, then took the IFFT, then the image content on each edge would bleed into the content on the opposite edge (this is well known -- I couldn't tell you what search term to use, but it'll be treated out there in all sorts of different ways).
Gaussian filtering is one of the well-known low pass filtering techniques that focuses on the Gaussian noise models on the data. When you low pass filter the signal, you lose the higher frequency parts of the signals, such as edges on the image. The result is a blurred image.
When you perform FFT on input data with gaussian noise, its going to increase the noiseFloor when you plot the magnitudes vs freq (FFT) plot . If you average/smooth out the gaussian added image data, that will reduce the noise. But it depends on how much averaging you are aaplying .. Too much averaging , you are going to loose the signal features.
-
2$\begingroup$ Pretty sure the OP means filtering the image with a Gaussian filter, not adding Gaussian noise. $\endgroup$ Commented Sep 19, 2022 at 19:33