Circular Cross Correlation 2D Using FFT
20 views (last 30 days)
Show older comments
Hello,
How to do Circular Cross Correlation In 2D Using fft ?
I checked this code for vectors and it seems that it works.
Z=ifft2(fft2(X1).*conj(fft2(X2)));
Is this code works also for matrix ?
Dims:
X1 : [m,n]
X2: [m,n]
Z: [m,n]
Thank You.
0 Comments
Answers (1)
David Goodmanson
on 18 Apr 2022
Hi Ziv,
yes, it works similarly.
m = 5;
n = 6;
q = 4;
A = randi(m,n,q);
B = randi(m,n,q);
C = zeros(size(A));
for j = 1:n
for k = 1:q
C(j,k) = sum(circshift(A,[1,1]).*circshift(B,[j,k]),'all'); % [1 1] adjusts the indexing
end
end
C
ifft2(fft2(A).*conj(fft2(B))) % agrees with C
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!