Bonjour,

J'ai le même problème que dans cette discussion, j'utilise la FFT pour faire un recalage mais j'obtiens toujours un résultat faux. Aidez-moi s'il vous plait !

Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
I1=imread('1.jpg');
I2=imread('5.jpg');
I1=rgb2gray(I1);
I2=rgb2gray(I2);
 
[m,n]=size(I1);
F=fft(I1);
G=fft(I2);
F=conj(F);
K=(G*F);
K=ifft(K);
mx=max(max(K));
for i=1:m
    for j=1:n
        if(K(i,j)==mx)
            a=i;
            b=j;
        end
    end
end
 
u=[(a-m)/2,(b-n)/2];
(a-m)/2
(b-n)/2
u
u=int32(u);
 u=double(u);
 
se=translate(strel(1),u);
J=imdilate(I2,se);