How can I use fft2 and ifft2 to calculate the cross correlation of two images

2 views (last 30 days)
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
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 Fourier Analysis and Filtering 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!