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

2 visualizaciones (últimos 30 días)
I have two images and their sizes are different. How can I use fft2 and ifft2 to calculate the cross correlation of these images?

Respuestas (1)

Sreeram
Sreeram el 14 de Mayo de 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.

Categorías

Más información sobre Fourier Analysis and Filtering en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by