数字图像处理实验十三绝对误差和算法模式匹配
利用绝对误差和算法在图像中找到模板所在位置
clear;
clc;
%----------------------------图像的灰度化处理-------------------------------
JPG=imread('1.jpg'); %原图
JPG=rgb2gray(JPG);
[M,N]=size(JPG); %行数(垂直分辨率)、列数(水平分辨率)
jpg=imread('2.jpg'); %模板图
jpg=rgb2gray(jpg);
[m,n]=size(jpg); %行数(垂直分辨率)、列数(水平分辨率)
%-------------------------绝对误差和算法模式匹配----------------------------
a=zeros(M-m+1,N-n+1);
for i=1:M-m+1 %for循环遍历
for j=1:N-n+1
s=JPG(i:i+m-1,j:j+n-1); %当前子图
a(i,j)=sum(sum(abs(double(s)-double(jpg))));
end
end
xy=min(min(a));
[X,Y]=find(a==xy); %最小值的位置
figure;imshow(jpg);title('模板');
figure;imshow(JPG);title('搜索图');
hold on;
rectangle('position',[Y,X,n,m],'edgecolor','r'); %从点x,y开始绘制长宽为N-1的正方形
hold off;
效果图展示