资源简介
在MATLAB中实现SAD模板匹配算法,有示例,有结果。另外,程序中也对SSD算法进行了实现说明,代码注释非常详细,对做图像匹配的学生有参考价值。
代码片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %绝对误差和算法(SAD)
% clc;
% clear;
%
% %原始图
% src=imread(‘src1.jpg‘);
% [a b d1]=size(src);
% if d1==3
% src=rgb2gray(src);
% end
%
% %模板
% mask=imread(‘template1.jpg‘);
% [m n d2]=size(mask);
% if d2==3
% mask=rgb2gray(mask);
% end
% N=n;%模板尺寸,默认模板为正方形
% M=a;%代搜索图像尺寸,默认搜索图像为正方形
% dst=zeros(M-NM-N);
% for i=1:M-N %子图选取,每次滑动一个像素
% for j=1:M-N
% temp=src(i:i+N-1j:j+N-1);%当前子图
% dst(ij)=dst(ij)+sum(sum(abs(temp-mask)));
% end
% end
%
% abs_min=min(min(dst));
% [xy]=find(dst==abs_min);%返回最小值在矩阵中的行列号
% figure;
% imshow(mask);title(‘模板‘);
% figure;
% imshow(src);
% hold on;
% rectangle(‘position‘[yxN-1N-1]‘edgecolor‘‘r‘);
% hold off;title(‘搜索结果‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%基于灰度的模板匹配算法
%绝对误差和算法(SAD)
%误差平方和算法(SSD)
%思想一致,只是相似度测度公式不一样而已!!!
clc;
clear;
%原始图
src=imread(‘E:\任务\图像匹配\模板匹配\SAD\images\src1.jpg‘);
[m n d1]=size(src);%m行n列
if d1==3
src=rgb2gray(src);
end
%模板
mask=imread(‘E:\任务\图像匹配\模板匹配\SAD\images\template1.jpg‘);
[M N d2]=size(mask);%M行N列
if d2==3
mask=rgb2gray(mask);
end
%存放各个子图与模板的绝对误差和
dst=zeros(m-M+1n-N+1);
for i=1:m-M+1 %子图选取,每次滑动一个像素
for j=1:n-N+1
temp=src(i:i+M-1j:j+N-1);%当前子图
%绝对误差和算法(SAD)
dst(ij)=dst(ij)+sum(sum(abs(temp-mask)));
%误差平方和算法(SSD)
% dst(ij)=dst(ij)+sum(sum((temp-mask).^2));%.^:矩阵中每个元素的平方
end
end
% m=min(dst);%找出矩阵dst中每列中的最小元素,构成行向量m
% mm=min(m);%进一步找出m中的最小元素mm,当然也就是矩阵dst中的最小元素
abs_min=min(min(dst));
[rc]=find(dst==abs_min);%返回最小值在dst(同样也在src)中的行列号 r:行 c:列
x=c;%x坐标对应的是列
y=r;%y坐标对应的是行
figure;
imshow(mask);title(‘模板‘);
figure;
imshow(src);
hold on;
rectangle(‘position‘[xyN-1M-1]‘edgecolor‘‘r‘); %[x坐标y坐标宽高]
hold off;title(‘匹配结果‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2324 2018-04-10 15:11 SAD\BM_SAD.m
文件 50544 2017-12-25 10:54 SAD\src.jpg
文件 6889 2017-12-25 11:37 SAD\src1.jpg
文件 33528 2017-12-25 10:54 SAD\template.jpg
文件 18182 2017-12-25 11:37 SAD\template1.jpg
目录 0 2018-04-10 15:10 SAD
----------- --------- ---------- ----- ----
111467 6
- 上一篇:支持向量机matlab代码
- 下一篇:产生4FSK的matlab程序
评论
共有 条评论