資源簡介
基于matlab的圖像跟蹤程序 算法是mean shift 用鼠標(biāo)選取一個要跟蹤的目標(biāo) 程序會自動跟蹤

代碼片段和文件信息
%mean?shift?tracking
%citation:?Comaniciu?D,Ramesh?V,Meer?P.?Kernel-based?object?tracking?[J].
%??????????IEEE?Transaction?on?Pattern?Analysis?and?Machine?Intelligence,2003?25(5):?564-577.
%?written?by?swf.
%?date:?2008.12.
%?第一幀用鼠標(biāo)選擇要跟蹤的物體
clear?all;
rgb=imread(‘0329.jpg‘);
figure(1)imshow(rgb);
[temprect]=imcrop(rgb);
[abc]=size(temp);
%目標(biāo)中心坐標(biāo)
y(1)=a/2;
y(2)=b/2;
m_wei=zeros(ab);%權(quán)值矩陣
h=y(1)^2+y(2)^2?;%帶寬
%計(jì)算權(quán)值矩陣
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));%歸一化系數(shù)
%計(jì)算目標(biāo)權(quán)值直方圖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);
????????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);?
???????%計(jì)算侯選區(qū)域直方圖
???????%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;
???????%bdist1?=?bhattacharyya(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
??????????%中心點(diǎn)位置更新??
???????????rect(1)=rect(1)+Y(2);
???????????rect(2)=rect(2)+Y(1);
????end
????
???????v1=rect(1);
???????v2=rect(2);
???????v3=rect(3);
???????v4=rect(4);
???????
???????%%顯示跟蹤結(jié)果
???????figure(2)
???????clf
???????imshow(uint8(Im))
???????hold?on;
???????plot
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????51271??2008-11-01?15:15??mean+shift+tracking?matlab\mean?shift?tracking\0329.jpg
?????文件??????51303??2008-11-01?15:15??mean+shift+tracking?matlab\mean?shift?tracking\0330.jpg
?????文件??????51393??2008-11-01?15:15??mean+shift+tracking?matlab\mean?shift?tracking\0331.jpg
?????文件??????51406??2008-11-01?15:15??mean+shift+tracking?matlab\mean?shift?tracking\0332.jpg
?????文件??????51413??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0333.jpg
?????文件??????51313??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0334.jpg
?????文件??????51406??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0335.jpg
?????文件??????51294??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0336.jpg
?????文件??????51331??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0337.jpg
?????文件??????51379??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0338.jpg
?????文件??????51210??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0339.jpg
?????文件??????51337??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0340.jpg
?????文件??????51169??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0341.jpg
?????文件??????51281??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0342.jpg
?????文件??????51367??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0343.jpg
?????文件??????51297??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0344.jpg
?????文件??????51305??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0345.jpg
?????文件??????51435??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0346.jpg
?????文件??????51305??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0347.jpg
?????文件??????51378??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0348.jpg
?????文件??????51562??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0349.jpg
?????文件??????51565??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0350.jpg
?????文件??????51663??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0351.jpg
?????文件??????51619??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0352.jpg
?????文件?????467965??2010-05-04?23:38??mean+shift+tracking?matlab\mean?shift?tracking\0353.jpg
?????文件??????51647??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0354.jpg
?????文件??????51472??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0355.jpg
?????文件??????51584??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0356.jpg
?????文件??????51871??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0357.jpg
?????文件??????51759??2008-11-01?15:16??mean+shift+tracking?matlab\mean?shift?tracking\0358.jpg
............此處省略29個文件信息
評論
共有 條評論