I have trouble wrapping my head around the way 2d convoluion with fft is performed. I understand how 2d convolution works when performed clasically (technically I'm interested in cross-correlation as this is all in context of images and filters applied to them). This can be also performed using Fourier transform in accordance with convolution theorem (which I believe holds for cross-correlation as well, one matrix has to be conjugated though) we could perform simple multiplication in frequency domain, and then find the inverse Fourier transform to obtain the result.

Suppose I want to convolve two $10 \times 10$ images, then I would find fft of each one, multiply element-wise, inverse and obtain $10 \times 10$ result, which would be the same as 'same' convolution performed clasically. What do I do when I want to convolve $10 \times 10$ image with $3 \times 3$ filter? As far as I understand the dimentions of 2d Fourier transforms do not match, so I cannot multiply them. Surely I must be understanding something wrong, I would appreciate any help.


Your Answer

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

Browse other questions tagged or ask your own question.