How can I use fft2 and ifft2 to calculate the cross correlation of two images
Show older comments
I have two images and their sizes are different. How can I use fft2 and ifft2 to calculate the cross correlation of these images?
Answers (1)
Sreeram
on 14 May 2025
Hi Wayne,
Before computing the cross-correlation, both images need to be zero-padded to the same size. This ensures that the frequency-domain multiplication is valid and that the result captures the full cross-correlation.
Once the images are appropriately padded, you can compute the cross-correlation using:
c = ifft2(fft2(X) .* conj(fft2(Y)));
where X and Y are the zero-padded versions of the original images.
I have used the approach described in this article for one of my own projects and found it very effective for template matching:
I think you'll find it helpful as well.
Categories
Find more on Correlation and Convolution in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!