• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: Matlab
  • 标签: MeanShift  Matlab  

资源简介

机器视觉,视频图像跟踪方向,很适合初学者,每条代码都做了详细的注释

资源截图

代码片段和文件信息


function [] = select()  
close all;  
clear all;  
%%%%%%%%%%%%%%%%%%根据一幅目标全可见的图像圈定跟踪目标%%%%%%%%%%%%%%%%%%%%%%%  
I=imread(‘E:\Matlab\bin\tracking_Matlabforum\1.bmp‘);  
figure(1);  
imshow(I);  
  
  
[temprect]=imcrop(I);      %rect表示,[xywidthheight];xy为截图时的初选点,width=bheight=a
[abc]=size(temp);         %temp是一个三维矩阵;ab表示像素点位置,c表示该点的rgb值(分为三层,分别为红绿蓝)
                            %像素可以理解为一个长度单位
                            
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%计算目标图像的权值矩阵%%%%%%%%%%%%%%%%%%%%%%%  
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 ;               %带宽      MeanShift目标跟踪算法的带宽选取策略;rect(4)/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(‘E:\Matlab\bin\tracking_Matlabforum\*.bmp‘);  
lengthfile=length(myfile);  
  

for l=1:lengthfile  
    image_name = strcat(num2str(l)‘.bmp‘);
    Im=imread(image_name);  
    num=0;  
    Y=[22];
           
    %%%%%%%mean shift迭代  
    while((Y(1)^2+Y(2)^2>0.5)&num<20)   %迭代条件  %%%%这一句表示当目标中心偏移的距离平方小于等于0.5 或 迭代次数超过20次,退出本次迭代。
        num=num+1;  
        %pause;
        temp1=imcrop(Imrect);  
        [ab

评论

共有 条评论