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

조회 수: 4 (최근 30일)
Wayne Wang
Wayne Wang 2017년 11월 7일
답변: Sreeram 2025년 5월 14일
I have two images and their sizes are different. How can I use fft2 and ifft2 to calculate the cross correlation of these images?

답변 (1개)

Sreeram
Sreeram 2025년 5월 14일
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.

카테고리

Help CenterFile Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by