运动目标检测及跟踪(提供Matlab代码)

运动目标检测及跟踪

运动目标检测及跟踪

Gif画图

function []=kuang(p,x11,j)%Gif画图
%p为二值图,x11为原图,j为第几帧
p=bwareaopen(p,30);%开运算,去除像素点少于30的区域
[L,num]=bwlabel(p,4);     %连通区域标记 
left=0;
right=0;
up=0;
down=0;
for i=1:num
    [r,c] = find(L==i) ;
    left(i)=min(c);
    right(i)=max(c);
    up(i)=min(r);
    down(i)=max(r);
end
x1=min(left);
y1=min(up);
x2=max(right);
y2=max(down);
figure(1)
imshow(x11)
hold on
rectangle('Position',[x1,y1,abs(x2-x1),abs(y1-y2)],'edgecolor','r');
drawnow;
F=getframe(gcf);
I=frame2im(F);
[I,map]=rgb2ind(I,256);
if j == 1
        imwrite(I,map,'people.gif','gif', 'Loopcount',inf,'DelayTime',0.2);
else
     imwrite(I,map,'people.gif','gif','WriteMode','append','DelayTime',0.2);
end
end

视频画图

global aviobj;
videoName = 'people';%表示将要创建的视频文件的名字
fps = 25; %帧率
if(exist('videoName','file'))
    delete videoName.avi
end
%生成视频的参数设定
aviobj=VideoWriter(videoName);  %创建一个avi视频文件对象,开始时其为空
aviobj.FrameRate=fps;
open(aviobj);%Open file for writing video data

aviobj=kuangvidio(pick,L_now,aviobj);%视频

close(aviobj);% 关闭创建视频

function [aviobj]=kuangvidio(p,x11,aviobj)%视频画图
p=bwareaopen(p,30);%开运算,去除像素点少于30的区域
[L,num]=bwlabel(p,4);     %连通区域标记 
left=0;
right=0;
up=0;
down=0;
for i=1:num
    [r,c] = find(L==i) ;
    left(i)=min(c);
    right(i)=max(c);
    up(i)=min(r);
    down(i)=max(r);
end
x1=min(left);
y1=min(up);
x2=max(right);
y2=max(down);
figure(1)
imshow(x11)
hold on
rectangle('Position',[x1,y1,abs(x2-x1),abs(y1-y2)],'edgecolor','r');
drawnow;
F=getframe(gcf);
writeVideo(aviobj,F);%视频
end

运动检测结果

运动目标检测及跟踪(提供Matlab代码)_第1张图片运动目标检测及跟踪(提供Matlab代码)_第2张图片
运动目标检测及跟踪(提供Matlab代码)_第3张图片
运动目标检测及跟踪(提供Matlab代码)_第4张图片
运动目标检测及跟踪(提供Matlab代码)_第5张图片
运动目标检测及跟踪(提供Matlab代码)_第6张图片

你可能感兴趣的