MeanShift运动目标跟踪 matlab程序

本文介绍了MeanShift运动目标跟踪算法,并提供了一个使用Matlab实现的程序示例。通过截取目标矩阵、计算加权直方图、比较不同帧间的直方图差异并迭代更新,实现目标的稳定跟踪。程序执行后展示结果截图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MeanShift算法简介: http://blog.youkuaiyun.com/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(i,j)=1-dist/h; %epanechnikov profile
    end
end
C=1/sum(sum(m_wei));%归一化系数


%计算目标权值直方图qu
%hist1=C*wei_hist(temp,m_wei,a,b);%target model
hist1=zeros(1,a*b);
for i=1:a
    for j=1:b   
        %rgb颜色空间量化为16*16*16 bins
        q_r=fix(double(temp(i,j,1))
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值