资源简介

均值漂移目标跟踪算法,选定目标后,一直跟踪目标

资源截图

代码片段和文件信息

function TargetTracking()

% 第一帧用鼠标选择要跟踪的物体
% 人为选择要跟踪的目标,双击后开始跟踪
original=imread(‘Car_Data/car001.bmp‘);
figure(1)imshow(original);
[temprect]=imcrop(original);
[ab]=size(temp);


%目标中心坐标
y(1)=a/2;
y(2)=b/2;

m_wei=zeros(ab);%权值矩阵
h=y(1)^2+y(2)^2 ;%带宽


% 计算权值矩阵
for i=1:a
    for j=1:b
        dist=(i-y(1))^2+(j-y(2))^2;
        m_wei(ij)=1-dist/h; 
    end
end
% 归一化系数
C=1/sum(sum(m_wei));


%计算目标权值直方图
hist1=zeros(14096);
for i=1:a
    for j=1:b   
        quantify=fix(double(temp(ij))/16);
        q_temp=quantify*16;
        hist1(q_temp+1)= hist1(q_temp+1)+m_wei(ij);%计算直方图统计中每个像素点占的权重
    end
end
hist1=hist1*C;
rect(3)=ceil(rect(3));%向离它最近的大整数圆整
rect(4)=ceil(rect(4));
jishu=0;

% 读取序列图像
 for i=1:100;
       Im=imread([‘Car_Data/car‘fullname(i)‘.bmp‘]); 
       jishu=jishu+1;
       num=0;
       Y=[22];
       tic
       % mean shift迭代
    while((Y(1)^2+Y(2)^2>0.5) && num<20)   %迭代条件
        num=num+1;
       temp1=imcrop(Imrect); 
       % 计算侯选区域直方图                                                                                                       
       hist2=zeros(14096);
       for i=1:a
         for j=1:b
            quantify1=fix(double(temp1(ij))/16);
            q_temp1(ij)=quantify1*256;
            hist2(q_temp1(ij)+1)= hist2(q_temp1(ij)+1)+m_wei(ij);
         end
       end
       hist2=hist2*C;
       w=weights(hist1hist2);
        %变量初始化
        sum_w=0;
    

评论

共有 条评论