资源简介

运用模板匹配算法实现目标检测,很好的图像处理方法

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 程序功能  :采用模板匹配算法实现对红外图像中的多机动目标的检测工作
% 输入变量  :
%           - im_matched:  被检测的红外图像
%           - im_teplate:  模板 
%           - T:  采样间隔           
%           - R:  相关函数
%           - L:  存放检测出的符合模板的目标(第k副图,第len_tt个目标)
%           - sigmaT:  模板像素
%           - sigmaS:  被检测图像中模板覆盖下的部分
% 作者     : 何宇
% 日期     : 2008-4-23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
for k=1:54
str = sprintf(‘E:\\MATLAB7\\work\\Data\\data3\\28-%.0f.bmp‘k);
im_matched = imread(str);
im_template = imread(‘moban4.bmp‘);

%function [maxHeightmaxWidthMaxR] = templateMatcher(im_matchedim_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;
%最大相似性测度
 double MaxR;
 MaxR = 0.0;
%最大相似性出现位置
 maxWidth = 0;
 maxHeight = 0;
%计算sigmaT

[tempheighttempwidth] = size(im_template);
for n =1:tempheight
   for m =1:tempwidth
       sigmaT = sigmaT + dim_template(nm)^2;
   end
end
sigmaT = sqrt(sigmaT);

%找到图像中最大相似性的出现位置
[heightwidth] = size(im_matched);

len_tt = 0;

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+ni+m)^2;
             sigmaST = sigmaST + dim_template(nm)*dim_matched(j+ni+m);
             end
        end
        
     %计算相似性
     sigmaS = sqrt(sigmaS);
     R = sigmaST /(sigmaS*sigmaT);
     
     %与最大相似性比较
     if(R > MaxR)
         len_tt = len_tt+1;
         L(klen_tt).x = i;
         L(klen_tt).y = j;
         MaxR = R;
     end
    end
end
figure
imshow(im_matched);hold on; plot([L(k:).x][L(k:).y]‘*r‘);

end


        


 


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2419  2008-04-22 09:21  mubiaojiance01.m

----------- ---------  ---------- -----  ----

                 2419                    1


评论

共有 条评论