这是暑期的一门项目实践课,初次接触Matlab,把学习做的实验做个梳理和总结,方便日后回顾。
图像识别的应用广泛,如在军事领域中,轰炸机通过航拍的图像匹配目标,确定投弹的坐标。
实验目的
在figure1中找到figure2匹配的位置。
实验代码
运行环境:Matlab2015
M文件:
f=imread('lena.jpg');
f2=rgb2gray(f);
g=imread('aim_eye.jpg');
g2=rgb2gray(g);
% 读入扫描对象图像f,和扫描目标g
%转化为对应的灰度图像
[m,n]=size(f2);
[m2,n2]=size(g2);
min=99999;
mini=1;
minj=1;
step=1;
%扫描将矩阵差异存储在数组中
for i=1:step:m-m2 %逐行
for j=1:step:n-n2 %逐列
c(i,j)=0;
for x=1:step:m2
for y=1:step:n2 % 目标对象和扫描对象矩阵数差的绝对值
c(i,j)=c(i,j)+abs(double(f2(i+x,j+y))-double(g2(x,y)));
end
end
end
end
%得到差异数组中的最小值,对应的坐标
for i=1:step:m-m2
for j=1:step:n-n2
if c(i,j)<min
min=c(i,j);
mini=i;
minj=j;
end
end
end
mini
minj
min
#