网上下载很多均值漂移算法,代码一样,但运行老是出错,这里是自己修改后的,成功运行,运行后先在第一帧Figure里截取要追踪的汽车目标即可,是在Matlab2016b上运行的,代码简单,适合学习。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-09-26 08:45 MeanShiftTracking
文件 51271 2008-11-01 15:15 MeanShiftTracking 329.jpg
文件 51303 2008-11-01 15:15 MeanShiftTracking 330.jpg
文件 51393 2008-11-01 15:15 MeanShiftTracking 331.jpg
文件 51406 2008-11-01 15:15 MeanShiftTracking 332.jpg
文件 51413 2008-11-01 15:16 MeanShiftTracking 333.jpg
文件 51313 2008-11-01 15:16 MeanShiftTracking 334.jpg
文件 51406 2008-11-01 15:16 MeanShiftTracking 335.jpg
文件 51294 2008-11-01 15:16 MeanShiftTracking 336.jpg
文件 51331 2008-11-01 15:16 MeanShiftTracking 337.jpg
文件 51379 2008-11-01 15:16 MeanShiftTracking 338.jpg
文件 51210 2008-11-01 15:16 MeanShiftTracking 339.jpg
文件 51337 2008-11-01 15:16 MeanShiftTracking 340.jpg
文件 51169 2008-11-01 15:16 MeanShiftTracking 341.jpg
文件 51281 2008-11-01 15:16 MeanShiftTracking 342.jpg
文件 51367 2008-11-01 15:16 MeanShiftTracking 343.jpg
文件 51297 2008-11-01 15:16 MeanShiftTracking 344.jpg
文件 51305 2008-11-01 15:16 MeanShiftTracking 345.jpg
文件 51435 2008-11-01 15:16 MeanShiftTracking 346.jpg
文件 51305 2008-11-01 15:16 MeanShiftTracking 347.jpg
文件 51378 2008-11-01 15:16 MeanShiftTracking 348.jpg
文件 51562 2008-11-01 15:16 MeanShiftTracking 349.jpg
文件 51565 2008-11-01 15:16 MeanShiftTracking 350.jpg
文件 51663 2008-11-01 15:16 MeanShiftTracking 351.jpg
文件 51619 2008-11-01 15:16 MeanShiftTracking 352.jpg
文件 51456 2008-11-01 15:16 MeanShiftTracking 353.jpg
文件 51647 2008-11-01 15:16 MeanShiftTracking 354.jpg
文件 51472 2008-11-01 15:16 MeanShiftTracking 355.jpg
文件 51584 2008-11-01 15:16 MeanShiftTracking 356.jpg
文件 51871 2008-11-01 15:16 MeanShiftTracking 357.jpg
文件 51759 2008-11-01 15:16 MeanShiftTracking 358.jpg
............此处省略95个文件信息
%mean shift tracking
function rgb_meanshift()
clear;
rgb=imread(‘0329.jpg‘);%读取第一帧图片
figure(1)imshow(rgb);
[temprect]=imcrop(rgb);%鼠标截取需要跟踪的目标,rect=[xywh]分别是左上角坐标和图片长宽
[abc]=size(temp);
%目标框中心点坐标
tic_x=rect(1)+rect(3)/2;
tic_y=rect(2)+rect(4)/2;
m_wei=zeros(ab);%权值矩阵初始化
%定义h为搜索窗口的大小,也可称为核函数带宽,包括长度和宽度,分别为目标长度和宽度的一半,h(xy)。
%这里的h是一个固定值,即跟踪过程中搜索窗口的大小是不变的,这导致 Mean-Shift跟踪算法在跟踪过程中不能适应目标尺寸的变化,对大小有改变的目标产生定位不准确。
y(1)=a/2;
y(2)=b/2;
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;%Epannechnikov核函数
end
end
C=1/sum(sum(m_wei));%归一化系数
%计算目标权值直方图
hist1=zeros(14096);
for i=1:a
for j=1:b
%rgb颜色空间量化为16*16*16 bins,降维来简化彩色颜色直方图
%把R,G,B三个通道0-255区间内的值都分为16个区间,即将0-255转换为0-15
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));
jishu=1;
%读取序列图像
for i=0329:0380
Im=imread([‘0‘int2str(i)‘.jpg‘]);
jishu=jishu+1;
%Im=medfilt2(Im);
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=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;
%bdist1 = bhattacharrya(hist1 hist2)
w=weights(hist1hist2);
%w=sqrt(hist1./hist2);
%变量初始化
sum_w=0;
xw=[00];
for i=1:a
for j=1:b
%bitwei(ij)=w(uint32(q_temp1(ij))+1);
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];
v
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-09-26 08:45 MeanShiftTracking
文件 51271 2008-11-01 15:15 MeanShiftTracking 329.jpg
文件 51303 2008-11-01 15:15 MeanShiftTracking 330.jpg
文件 51393 2008-11-01 15:15 MeanShiftTracking 331.jpg
文件 51406 2008-11-01 15:15 MeanShiftTracking 332.jpg
文件 51413 2008-11-01 15:16 MeanShiftTracking 333.jpg
文件 51313 2008-11-01 15:16 MeanShiftTracking 334.jpg
文件 51406 2008-11-01 15:16 MeanShiftTracking 335.jpg
文件 51294 2008-11-01 15:16 MeanShiftTracking 336.jpg
文件 51331 2008-11-01 15:16 MeanShiftTracking 337.jpg
文件 51379 2008-11-01 15:16 MeanShiftTracking 338.jpg
文件 51210 2008-11-01 15:16 MeanShiftTracking 339.jpg
文件 51337 2008-11-01 15:16 MeanShiftTracking 340.jpg
文件 51169 2008-11-01 15:16 MeanShiftTracking 341.jpg
文件 51281 2008-11-01 15:16 MeanShiftTracking 342.jpg
文件 51367 2008-11-01 15:16 MeanShiftTracking 343.jpg
文件 51297 2008-11-01 15:16 MeanShiftTracking 344.jpg
文件 51305 2008-11-01 15:16 MeanShiftTracking 345.jpg
文件 51435 2008-11-01 15:16 MeanShiftTracking 346.jpg
文件 51305 2008-11-01 15:16 MeanShiftTracking 347.jpg
文件 51378 2008-11-01 15:16 MeanShiftTracking 348.jpg
文件 51562 2008-11-01 15:16 MeanShiftTracking 349.jpg
文件 51565 2008-11-01 15:16 MeanShiftTracking 350.jpg
文件 51663 2008-11-01 15:16 MeanShiftTracking 351.jpg
文件 51619 2008-11-01 15:16 MeanShiftTracking 352.jpg
文件 51456 2008-11-01 15:16 MeanShiftTracking 353.jpg
文件 51647 2008-11-01 15:16 MeanShiftTracking 354.jpg
文件 51472 2008-11-01 15:16 MeanShiftTracking 355.jpg
文件 51584 2008-11-01 15:16 MeanShiftTracking 356.jpg
文件 51871 2008-11-01 15:16 MeanShiftTracking 357.jpg
文件 51759 2008-11-01 15:16 MeanShiftTracking 358.jpg
............此处省略95个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)