How do I actually apply the convolution theorem? I have my fourier transformed image matrix, and a Fourier transformed kernel, but how do I actually multiply these together to achieve the intended effect of the kernel? Is it through matrix multiplication or some other method? The dimensions are different though.
Asked
Active
Viewed 724 times
1 Answers
1
You have many great code examples at our community:
- 2D Frequency Domain Convolution Using FFT (Convolution Theorem).
- Kernel Convolution in Frequency Domain - Cyclic Padding.
- 2D Image Convolution: Spatial Domain vs. Frequency Domain Convolution in the Computational Complexity Sense.
- Applying Image Filtering (Circular Convolution) in Frequency Domain.
- Applying 2D Image Convolution in Frequency Domain with Replicate Border Conditions in MATLAB.
- How to Zero Pad in Order to Perform Filtering in the Fourier (Frequency) Domain?
- Replicate MATLAB's
conv2()in Frequency Domain.
The last 2 have a specific code to do image filtering in frequency domain.
Royi
- 19,608
- 4
- 197
- 238
-
Thank you. From reading those posts, I understand that you have to pad the two matrices with 0s, and then element multiplying them. I am doing this manually instead of with code, as I do not have any coding knowledge, so am I understanding it right? – botman Sep 10 '21 at 13:24
-
Indeed. You need to pad them both to the same size according to your needs. – Royi Sep 10 '21 at 17:05
-
@botman, Anything missing in my answer? Could you tell me what's missing in order to accept it? – Royi Mar 25 '23 at 12:04