資源簡介
本代碼運行于matlab環(huán)境,用C語言編寫,是基于單獨兩幀的塊匹配算法
代碼片段和文件信息
??????
clear?all
%tic
I=imread(‘m3.bmp‘);%%%%%3與18%%%%%%
J=imread(‘m18.bmp‘);
A=rgb2gray(I);
B=rgb2gray(J);
imshow(A);
figure?imshow(B);
[mn]=size(A);
dx=6;
dy=6;
block1=B(10:5410:54);
block2=B(10:54n-55:n-11);
block3=B(m-55:m-1110:54);
block4=B(m-55:m-11n-55:n-11);
for?i=-dx:dx
????for?j=-dy:dy
????????rblock1=A(10+i:54+i10+j:54+j);
?????????DB1=abs(block1-rblock1);
?????????SAD1(i+dx+1j+dy+1)=sum(sum(DB1));
?????????
????????rblock2=A(10+i:54+in-55+j:n-11+j);
?????????DB2=abs(block2-rblock2);
?????????SAD2(i+dx+1j+dy+1)=sum(sum(DB2));
?????????
????????rblock3=A(m-55+i:m-11+i10+j:54+j);
?????????DB3=abs(block3-rblock3);
?????????SAD3(i+dx+1j+dy+1)=sum(sum(DB3));
?????????
????????rblock4=A(m-55+i:m-11+in-55+j:n-11+j);
?????????DB4=abs(block4-rblock4);
?????????SAD4(i+dx+1j+dy+1)=sum(sum(DB4));
????end
end
???????????min(min(SAD1));
???????????[rr1cc1]=find(SAD1==min(min(SAD1)));
???????????r1=rr1-dx-1;
???????????c1=cc1-dy-1;
???????????min(min(SAD2));
???????????[rr2cc2]=find(SAD2==min(min(SAD2)));
???????????r2=rr2-dx-1;
???????????c2=cc2-dy-1;
???????????min(min(SAD3));
???????????[rr3cc3]=find(SAD3==min(min(SAD3)));
??????
評論
共有 條評論