简体   繁体   中英

why does it perform a FFT to the filter generated by Gabor wavelet (image)

I am using a code of 2D gabor for image processing. The Gabor filter bank is generated via a Gabor wavelet 4 scale 8 orientations. Then I have 4*8 filters. Anyway, I found in the program that It firstly perform a FFT to the image and a FFT to the Gabor filter , and eliminate DC component of GAbor FFT.

[Gr,Gi] = Gabor(N,[s n],freq,[stage orientation],flag);
F = fft2(Gr+j*Gi);
F(1,1) = 0;

Then it performs inverse FFT to the dot mulplication of image FFT and Gabor filter FFT.

D = abs(ifft2(im.*GW));  

Is there anyone can explain that why it does in this way? What the use of FFT2 to Gabor filter?

You're calculating the Gabor space of your image, as reported here . As you read there, you want to calculate the convolution of the filter with the image, and this is what your code is doing.

The convolution theorem allows to calculate the convolution of your filter with the signal (the image) as the inverse transform of the product of their two Fourier transforms. It is done this way because it scales better with large inputs, ie it is usually faster then normal convolution, see this paragraph .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM