运动目标检测及跟踪(提供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

运动检测结果

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值