📄 templatematcher.m
字号:
%模板匹配
function [maxHeight,maxWidth,MaxR] = templateMatcher(im_matched,im_template)
if isrgb(im_matched)
im_matched = rgb2gray(im_matched);
end
if isrgb(im_template)
im_template = rgb2gray(im_template);
end
dim_matched =double(im_matched);
dim_template = double(im_template);
%方差
sigmaST = 0.0;
sigmaS = 0.0;
sigmaT = 0.0;
%相似性测度
%double R
%最大相似性测度
MaxR = 0.0;
%最大相似性出现位置
maxWidth=0;
maxHeight=0;
%计算sigmaT
[tempheight,tempwidth] = size(im_template);
for n =1:tempheight
for m =1:tempwidth
sigmaT = sigmaT + dim_template(n,m)^2;
end
end
sigmaT = sqrt(sigmaT);
%找到图像中最大相似性的出现位置
[height,width] = size(im_matched);
% width = size(im_matched,2);
for j =1:height-tempheight
for i =1:width-tempwidth
sigmaST = 0;
sigmaS = 0;
for n = 1:tempheight
for m = 1:tempwidth
sigmaS = sigmaS + dim_matched(j+n,i+m)^2;
sigmaST = sigmaST + dim_template(n,m)*dim_matched(j+n,i+m);
end
end
%计算相似性
sigmaS = sqrt(sigmaS);
R = sigmaST /(sigmaS*sigmaT);
%与最大相似性比较
if(R >MaxR)
MaxR = R;
maxWidth = i+1;
maxHeight =j+1;
end
end
end
recWidth = [maxWidth maxWidth+tempwidth-1 maxWidth+tempwidth-1 maxWidth maxWidth];
recHeight = [maxHeight maxHeight maxHeight+tempheight-1 maxHeight+tempheight-1 maxHeight];
figure,imshow(im_matched);hold on , plot(recWidth,recHeight,'r-');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -