资源简介

用均值漂移算法实现目标跟踪,均值漂移算法是一种基于核函数估计的无参数算法,它无需估计整个区间的概率密度也无需知道区间内样本的分布情况,由于其具有较低的计算量,且计算速度快,抗干扰能力强在解决计算机视觉领域尤其是目标跟踪方面表现出了良好的鲁棒性和实时性。

资源截图

代码片段和文件信息

%配套论文《基于MeanShift算法的目标跟踪算法研究》 P28-29
function [] = select()
close all;
clear all;
%%%%%%%%%%%%%%%%%%根据一幅目标全可见的图像圈定跟踪目标%%%%%%%%%%%%%%%%%%%%%%%
I=imread(‘result72.jpg‘);
figure(1);
imshow(I);


[temprect]=imcrop(I);
[abc]=size(temp);  %a:rowb:col


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%计算目标图像的权值矩阵%%%%%%%%%%%%%%%%%%%%%%%
y(1)=a/2;
y(2)=b/2;
tic_x=rect(1)+rect(3)/2;
tic_y=rect(2)+rect(4)/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; %epanechnikov profile
    end
end
C=1/sum(sum(m_wei));%归一化系数


%计算目标权值直方图qu
%hist1=C*wei_hist(tempm_weiab);%target model
hist1=zeros(14096);
for i=1:a
    for j=1:b
        %rgb颜色空间量化为16*16*16 bins
        q_r=fix(double(temp(ij1))/16);  %fix为趋近0取整函数
        q_g=fix(double(temp(ij2))/16);
        q_b=fix(double(temp(ij3))/16);
        q_temp=q_r*256+q_g*16+q_b;            %设置每个像素点红色、绿色、蓝色分量所占比重
        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));




%%%%%%%%%%%%%%%%%%%%%%%%%读取序列图像
myfile=dir(‘D:\matlab7\work\mean shift\image\*.jpg‘);
lengthfile=length(myfile);


for l=1:lengthfile
    Im=imread(myfile(l).name);
    num=0;
    Y=[22];
    
    
    %%%%%%%mean shift迭代
    while((Y(1)^2+Y(2)^2>0.5)&num<20)   %迭代条件
        num=num+1;
        temp1=imcrop(Imrect);
        %计算侯选区域直方图
        %hist2=C*wei_hist(temp1m_weiab);%target candidates pu
        hist2=zeros(14096);
        for i=1:a
            for j=1:b
                q_r=fix(double(temp1(ij1))/16);
                q_g=fix(double(temp1(ij2))/16);
                q_b=fix(double(temp1(ij3))/16);
                q_temp1(ij)=q_r*256+q_g*16+q_b;
                hist2(q_temp1(ij)+1)= hist2(q_temp1(ij)+1)+m_wei(ij);
            end
        end
        hist2=hist2*C;
        figure(2);
        subplot(121);
        plot(hist2);
        hold on;
        
        w=zeros(14096);
        for i=1:4096
            if(hist2(i)~=0) %不等于
                w(i)=sqrt(hist1(i)/hist2(i));
            else
                w(i)=0;
            end
        end
        
        
        
        %变量初始化
        sum_w=0;
        xw=[00];
        for i=1:a;
            for j=1:b
                sum_w=sum_w+w(uint32(q_temp1(ij))+1);
                xw=xw+w(uint32(q_temp1(ij))+1)*[i-y(1)-0.5j-y(2)-0.5];
            end
        end
        Y=xw/sum_w;
        %中心点位置更新
        rect(1)=rect(1)+Y(2);
        rect(2)=rect(2)+Y(1);
    end
    
    
    %%%跟踪轨迹矩阵%%%
    tic_x=[tic_x;rect(1)+rect(3)/2];
    tic_y=[tic_y;rect(2)+rect(4)/2];
    
    v1=rect(1);
    v2=rect(2);
    v3=rect(3);
    v4=rect(4);
    %%%显示跟踪结果%%%
    subplot(122);
    imshow(uint8(Im));
    title(‘目标跟踪结果及其运动轨迹‘);
    hold on;
    plot([v1v1+v3][v2v2][v1v1][v2v2+v4][v1v1+v3][v2+v

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

     文件      53586  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result100.jpg

     文件      53682  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result101.jpg

     文件      51480  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result73.jpg

     文件      52668  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result74.jpg

     文件      53206  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result75.jpg

     文件      53078  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result76.jpg

     文件      53577  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result77.jpg

     文件      54160  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result78.jpg

     文件      53735  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result79.jpg

     文件      53948  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result80.jpg

     文件      54540  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result81.jpg

     文件      54054  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result82.jpg

     文件      52994  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result83.jpg

     文件      49604  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result84.jpg

     文件      50696  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result85.jpg

     文件      51384  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result86.jpg

     文件      52733  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result87.jpg

     文件      52758  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result88.jpg

     文件      53308  2014-06-11 23:19  Meanshift\Meanshift\matlab\image\result89.jpg

     文件      53722  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result90.jpg

     文件      53366  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result91.jpg

     文件      53468  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result92.jpg

     文件      54035  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result93.jpg

     文件      52586  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result94.jpg

     文件      52189  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result95.jpg

     文件      49294  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result96.jpg

     文件      51386  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result97.jpg

     文件      52663  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result98.jpg

     文件      53380  2014-06-11 23:14  Meanshift\Meanshift\matlab\image\result99.jpg

     文件       3310  2014-06-12 11:29  Meanshift\Meanshift\matlab\meanshift.m

............此处省略37个文件信息

评论

共有 条评论