MeanShift运动目标跟踪 matlab程序

MeanShift算法简介: http://blog.csdn.net/carson2005/article/details/7337432


思路简介:

1.截取跟踪目标矩阵rect

2.求取跟踪目标的加权直方图hist1

3.读取视频序列中的一帧, 先随机取一块与rect等大的矩形,计算加权直方图hist2。

4.计算两者比重函数,如果后者差距过大, 更新新的矩阵中心Y,进行迭代(MeanShift是一种变步长可以迅速接近概率密度峰值的方法),直至一定条件后停止。




源程序(参考过其他程序):

 function [] = select() 
  
close all;
clear all;
%%%%%%%%%%%%%%%%%%根据一幅目标全可见的图像圈定跟踪目标%%%%%%%%%%%%%%%%%%%%%%%
I=imread('E:\数字图像处理\6\2\18.bmp');
figure(1);
imshow(I);


[temp,rect]=imcrop(I);
[a,b,c]=size(temp); 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%计算目标图像的权值矩阵%%%%%%%%%%%%%%%%%%%%%%%
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(a,b);%权值矩阵
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(

你可能感兴趣的:(机器视觉)