www.gusucode.com > 关于海航matlab和lingo的训练题 > 人眼定位MATLAB源程序/tmp.m
function result=tmp(image1,image2); %********************************************************* %如果是三维图像就转换为二维灰度图像 if size(image1,3)==3 image1=rgb2gray(image1); end if size(image2,3)==3 image2=rgb2gray(image2); end % 通过图片的尺寸判断哪个是测试图片哪个是模板 if size(image1)>size(image2) Target=image1; Template=image2; else Target=image2; Template=image1; end % 取得两幅图片的尺寸 [r1,c1]=size(Target); [r2,c2]=size(Template); % 模板的均值 image22=Template-mean(mean(Template));%X-E(X) %两幅图像的相关性 M=[];%相关系数 矩阵 for i=1:(r1-r2+1)%横向搜索 for j=1:(c1-c2+1)%纵向搜索 Nimage=Target(i:i+r2-1,j:j+c2-1); %区域的选取,r2,c2为选取的大小 Nimage=Nimage-mean(mean(Nimage)); %Y-E(Y) corr=sum(sum(Nimage.*image22));%E(X)*E(Y)取和与Cov(X,Y)成正比 warning off M(i,j)=corr/(sqrt(sum(sum(Nimage.^2)))*sqrt(sum(sum(image22.^2))));%X与Y均方差的积 end end % 在测试的图像中标注出目标的位置 result=plotbox(Target,Template,M);