Matlab移动目标检测输出二值视频
老师布置了个作业,给了个交通视频,让检测出运动的物体,物体用白色标识,其他部分用黑色标识,输出视频。简单来讲就是输出二值图,运动的物体为白色。
我采用的检测物体运动的方法是帧间差分法。准确来说是二帧间差分法。二帧间差分法所得到的物体没有三振间稳定。为了去掉无关的噪点,采用中值滤波把椒盐噪点去掉。
1、这一部分的结果是保存了150张二值图片,每一步具体作用写注释里面了。
clear all;
close all;
clc;
p_num=1
mov=VideoReader(‘TST2.avi’);%读取视频
N=mov.NumberOfFrames;%读取视频帧数
tp=[];
%遍历帧
for i=2:150
frame=read(mov,i);%读取当前第i帧的图片
Pframe=read(mov,i-1);%读取第i-1帧的图片
if ndims(frame)==3%如果图片的维度是3,那么就是彩色图像
x=rgb2gray(frame);%转换成灰度图像
else
x=frame;%否则,不操作
end
if ndims(Pframe)==3%同理
y=rgb2gray(Pframe);
else
y=Pframe;
end
subplot(1,2,1);%画两个窗口
imshow(Pframe,[]);
title(sprintf(‘第%d帧’,i-1))
%差分算法
x=medfilt2(x);%中值滤波,消除椒盐噪声
y=medfilt2(y);
n=im2double(x);%将图像转化为双精度
p=im2double(y);
c=n-p;%做差 c=medfilt2(c);%中值滤波,消除椒盐噪声 t=10/256;%设置二值的阈值点 c(abs(c)>=t)=255;%如果大于阈值点,设为1 c(abs(c)<t)=0;%如果小于,设为0 c=logical(c);%将数值转化为逻辑值,即,转换成了二值 x1=Pframe(:,:,1);%将运动的部分设置为白色rgb[255,255,255] x1(c)=255; x2=Pframe(:,:,2); x2(c)=255; x3=Pframe(:,:,3); x3(c)=255; xc=cat(3,x1,x2,x3); %将矩阵进行拼接,生成新的图像 %tp=[tp c]; subplot(1,2,2); imshow(c); title(sprintf('第%d帧',i-1)) str1='E:\大三下\csdn博客\帧差分法\二值图片\'; str2=num2str(p_num); str3='.jpg'; save_path=[str1,str2,str3]; imwrite(c,save_path);%保存每一帧处理后的二值图片 p_num=p_num+1;
end
2、这一部分是把150张图片合成一个视频
vedio = VideoWriter(‘demo.avi’); %初始化一个avi文件
vedio.FrameRate = 15;
fpath=‘E:\大三下\csdn博客\帧差分法\二值图片’;
open(vedio);
for i=1:149 %图像序列个数
fname=strcat(num2str(i,’%d’),’.jpg’);
frame = imread([fpath,fname]);
writeVideo(vedio,frame);
end
close(vedio);
原视频gif效果
处理后的视频gif效果图
由于,我把帧率从之前30帧调到了15帧,就有一种放慢的效果
参考文献
1、https://blog.csdn.net/zxc024000/article/details/49642249?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
2、https://zhuanlan.zhihu.com/p/27077851
- 点赞
- 收藏
- 分享
- 文章举报
- 基于视频的移动目标检测 Moving Object Detection
- 红外视频中的移动目标检测
- matlab 将图片制作成视频并将视频输出为图片
- 运动目标检测、阴影检测及目标跟踪中用得到的标准测试视频下载
- 我收集的一些目标检测、跟踪、识别标准测试视频集和图像数据库
- 混合高斯背景建模-视频的运动目标检测
- 运动目标检测、阴影检测及目标跟踪中用得到的标准测试视频下载(大量IBM提供视频)
- 运动目标检测、阴影检测及目标跟踪中用得到的标准测试视频下载(大量IBM提供视频)
- 运动目标检测、阴影检测及目标跟踪中用得到的标准测试视频下载(大量IBM提供视频)
- 视频目标检测与跟踪实现代码
- 目标检测光流法(四):matlab下光流法工具箱
- 目标检测光流法(四):matlab下光流法工具箱
- 在Windows下运行Felzenszwalb的star-cascade DPM(Deformable Part Models)目标检测Matlab源码
- 移动目标检测
- 动态视频目标检测和跟踪技术
- Haar+Adaboost 车辆检测 目标检测(视频车辆检测算法代码)
- 对视频序列的 运动检测 目标跟踪(运动目标的检测与跟踪)
- 修改caffe输出multilabel,并自己训练完成了一个神经网络,初步达到目标检测的效果
- 视频目标检测与跟踪实现代码
- 【转载】ILSVRC2016目标检测任务回顾:视频目标检测(VID)