1 简介 为解决视频帧目标跟踪中的尺度变化导致的目标跟踪发生跟丢的问题,提出一种自适应跟踪窗口的处理方法,利用下一帧的估计位置与当前帧目标位置的差值作为检测量,自适应调整
1 简介
为解决视频帧目标跟踪中的尺度变化导致的目标跟踪发生跟丢的问题,提出一种自适应跟踪窗口的处理方法,利用下一帧的估计位置与当前帧目标位置的差值作为检测量,自适应调整跟踪窗口,实现目标的有效检测和跟踪.实验结果表明:该方法能有效降低目标跟丢的概率,预防目标的误跟踪,适应目标尺度变化.
2 部分代码
% extracts the center (cc,cr) and radius of the largest blobfunction [stats,N,flag,foremm]=extract(Imwork,Imback,index)%,fig1,fig2,fig3,fig15,index)
cc = 0;
cr = 0;
flag = 0;
[MR,MC,Dim] = size(Imback);
%Imwork(:,:,1),Imwork(:,:,2),Imwork(:,:,3),分别是图像的RGB值,
%程序的目的是提取两幅图R,G,B三个通道的差值大于10的部分(二值化)
% subtract background & select pixels with a big difference
fore = zeros(MR,MC);
fore = imabsdiff(Imwork,Imback);
%进行二值化,去除图像噪声
Im2=im2bw(fore,80/255);
%对图像进行膨胀操作
foremm = bwmorph(Im2,'dilate',4); %2 time
% select largest object
labeled = bwlabel(foremm,4); %标注二进制图像中已连接的部分。
stats = regionprops(labeled,['basic']); %获取label的图形属性 %使用字符串'basic',则属性:'Area','Centroid'和'BoundingBox'将被计算
[N,W] = size(stats);
if N < 1
return
end
% do bubble sort (large to small) on regions in case there are more than 1
id = zeros(N); % N为检测到的目标的个数
for i = 1 : N
id(i) = i;
end
for i = 1 : N-1
for j = i+1 : N
if stats(i).Area < stats(j).Area
tmp = stats(i);
stats(i) = stats(j);
stats(j) = tmp;
tmp = id(i);
id(i) = id(j);
id(j) = tmp;
end
end
end
% make sure that there is at least 1 big region
if stats(1).Area < 100
return
end
%selected = (labeled==id(1));
flag = 1;
return
3 仿真结果
4 参考文献
[1]李妍妍, 田瑞娟, 张弦弦. 一种基于帧差法结合Kalman滤波的运动目标跟踪方法[J]. 兵工自动化, 2019, 38(4):4.