2010-05-27 5 views
0

MATLAB을 사용하여 두 이미지를 비교하고 'It is same image'메시지를 표시하고 싶습니다. 또는 '죄송합니다. 동일한 이미지가 아닙니다.' 내 프로그램은 항상 'It is same image.'라고 표시합니다.MATLAB과 이미지 비교

내 코드는 다음과 같습니다

i1 = imread('001_1_1.fig'); 
i2 = imread('001_1_1.fig'); 
x1 = edge(i1,'canny'); 
j1 = imcrop(x1,[135 90 100 95]); 
x2 = edge(i2,'canny'); 
g = 0; 
xxx = 1; 
yyy = 1; 

for n = 1:1:2 
    g1 = imrotate(j1,n,'bilinear','crop'); 
    r1 = corr2(j1,g1); 
    if(xxx<r1) 
    else 
     xxx = r1; 
    end; 
end; 

for n = 180:-1:178 
    g1 = imrotate(j1,n,'bilinear','crop'); 
    r1 = corr2(j1,g1); 
    if(yyy<r1) 
    else 
     yyy = r1; 
    end; 
end; 

if(xxx <= yyy) 
    r_corr = xxx; 
else 
    r_corr = yyy; 
end; 

j2 = imcrop(x2,[135 90 100 95]); 
r = corr2(j1,j2); 
if (r==1) 
    disp('it is the same image') 
    return; 
elseif (r >= r_corr) 
    disp('it is the same image') 
    return; 
else 
    g = 1; 
end; 

if(g==1) 
    disp('sorry, it is not the same image') 
end; 
+1

문제를 진단하기 위해 수행 한 작업은 무엇입니까? –

답변

4

는 다음 명령

i1=imread('001_1_1.fig'); 
i2=imread('001_1_1.fig'); 

이러한 이미지는 동일을 사용하여 두 이미지, i1i2을로드하고 있습니다. 따라서 코드는 두 이미지가 동일하다는 것을 알려줍니다.

1

x = imread ('first.jpg');

y = imread ('seconda.jpg');

c = isequal (x, y);

``if c == 1

printf ('예 평등'); else printf ('Not');