• 大小: 75KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2022-10-06
  • 语言: Matlab
  • 标签: 模板匹配  

资源简介

更深入理解模板匹配技术,能够独立根据已知算法(相关匹配(Correlation Matching)、基于Hausdorff距离匹配方法 及考虑对场景图象距离变换(Distance Transform)的Hausdorff距离匹配方法)在MATLAB下编程实现相关的模板匹配技术,并通过结果,对比不同算法的优缺点。 1)利用①相关匹配(Correlation Matching)、②基于Hausdorff距离匹配方法 及③考虑对场景图象距离变换(Distance Transform)的Hausdorff距离匹配方法,实现模板目标在场景图象中的定位。 2)对于每个模板分别给出最后的目标定位位置坐标(左下角坐标为(0,0)),对于方法①与②,比较定位精度的偏差;对于方法②与③比较定位效率(时间)。

资源截图

代码片段和文件信息

clear
clc
Background_Source=imread(‘Scene.jpg‘);
Template_Source=imread(‘Template_1.jpg‘);

if size(Background_Source3)==3
    Template=rgb2gray(Background_Source);
    Template=double(Template);
else
    Template=double(Template_Source);
end
if size(Template_Source3)==3
    Background=rgb2gray(Template_Source);
    Background=double(Background);
else
    Background=double(Background_Source);
end

[Bk_r Bk_c]=size(Background);
[Te_r Te_c]=size(Template);
%实现公式运算
for i=1:(Bk_r-Te_r+1)
    for j=1:(Bk_c-Te_c+1)
        A=Background(i:i+Te_r-1j:j+Te_c-1).*Template;
        B=sum(A(:));
        C=Background(i:i+Te_r-1j:j+Te_c-1).*Background(i:i+Te_r-1j:j+Te_c-1);
        D=sum(C(:));
        E=Template.*Template;
        F=sum(E(:));
        Result(ij)=B/sqrt(D*F);
    end
end

[C_maximax]=max(Result(:));
[y x]=ind2sub(size(Result)imax);%函数可以用来把矩阵元素的index转换成对应的下标,并输出坐标
y1=Bk_r-Te_r-y+1
x1=x-1
figure;
subplot(132);imshow(Background_Source);
title(‘原始图像‘);
subplot(131);imshow(Template_Source);
title(‘模板图像‘);
subplot(133);imshow(Background_Source);
title(‘匹配结果‘);
rectangle(‘Position‘[xysize(Template2)size(Template1)]‘EdgeColor‘‘r‘); 

评论

共有 条评论