Frequency domain image multiplication

I worked with images in the frequency domain (using DFT or FFT images), and I know that convolution in the spatial domain is multiplication by frequency.

So my question is: if I wanted to apply a specific core (say, a 9x9 smoothing core) in the spatial domain, I would just collapse the whole image using a 9x9 filter. Now, if I wanted to do the same in the frequency domain, do I take the FFT of both the image and the core? Then how / what will I multiply? After I have a new dataset (image multiplied by the core), I just change the direction of the FFT and this should give me the same result as the core minimized with the image in the space region, right?

Thanks for any help!

+3
source share
2 answers

IIRC, you have an FFT'd image and a kernel (both FFT'd) with the same size, then multiply the pixel images of both FFT'd and the inverse FFT results.

Take care of what happens with the borders of your image (see FFT theory).

+2
source

Note that FFT multiplication is the same as circular convolution (for example, as if the edges of your data were wrapped). If you do not want these effects of circular edges to be obtained from the convolution results, you can skip your data at least at the zero length of your convolution kernel plus 1. You also need to fill your convolution kernel with zero to give it the same length.

, 522 FFT (512 + 9 + 1) , , 540 FFT, ( FFTW -2 ), 1024 , 2.

@maola, ​​ ( , , ), .

+1

All Articles