Matlab实现图像扫描匹配

这是暑期的一门项目实践课,初次接触Matlab,把学习做的实验做个梳理和总结,方便日后回顾。

图像识别的应用广泛,如在军事领域中,轰炸机通过航拍的图像匹配目标,确定投弹的坐标。

实验目的

在figure1中找到figure2匹配的位置。

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

#

实验结果


实验结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。