基于MATLAB的视频车辆跟踪和计数系统仿真
目录
一、理论基础
二、思路流程
三、部分MATLAB代码
四、仿真结论分析
一、理论基础
主要是通过和提取的背景进行对比,得到汽车的基本轮廓,然后再通过视频的前后帧进行差分比对,得到运动汽车。最后对获得图片进行处理提取汽车。 其流程图如下所示:
二、思路流程
·视频读取介绍
首先MATLAB中对于视屏支持较好的格式为8bit,16bit,24bit的AVI格式,所以我们首先要将您提供的WMV文件转换为对应的AVI格式,以方便处理。此外,为了防止出现OUT OF MEMORY的问题,我们在给你做的时候,将视频的大小变小了,改为320*240.然后由于系统不要求采用实时的做法,所以我们直接压缩为没秒10帧的格式
注意,用我们提供的转换软件进行转换,转换参数配置界面如下所示。
此外,由于源视屏时间比较长,这对于一般电脑来说,在MATLAB中会出现OUT OF MEMORY的错误,所以我们需要将视频结成不同的长度的视频,这里,我们将视频截成3s,15frame/s的视屏格式。
这里我们从你提供的视屏中截取了5个小片段,分包有摩托车,小汽车,大卡车,面包车,以及行人等各类因素。所以能说明问题了。
对应代码为
function [Obj,frameNum] = get_AVI(datas);Obj = mmreader(datas);frameNum = get(Obj,'NumberOfFrames');end
注意MATLAB对AVI,WMV格式的限制,所以最好先对视屏文件处理一下。
·背景的提取
本系统一个比较重要的部分就是背景的提取。
背景差分法,假设在提取运动目标的过程中其对应的背景是固定不变的,在这种条件下,该方法能精确的提取出快速、缓慢运动和静止的前景目标。正是由于这种特点,背景分差法对背景的变化非常敏感,只要背景发生较大的变化,则可能造成误检的现象。
在高速公路监控图像中,通过标定场景路面图像作为图像处理区域,其背景图像简单,而且每个背景点上的颜色分布比较集中。因此可以采用运算速度快、性能较好的统计学背景模型——序列均值法。
就是对一个视屏的像素求和再平均,由于过往的车辆是少数,所以求平均之后,其得到的像素值基本接近了背景。
function [back_ground,back1] = get_background(Obj,frameNum_Original);for i = 1:frameNum_Originalpixel(:,:,i) = rgb2gray(read(Obj,i)); endrows = size(pixel,1);%240cols = size(pixel,2);%320for i = 1:rowsfor j = 1:colsback1(i,j) = 0; endendfor k = 1:frameNum_Originalfor i = 1:rowsfor j = 1:colsback1(i,j) = back1(i,j)+ double(pixel(i,j,k)); endendend for i = 1:rowsfor j = 1:colsback_ground(i,j) = uint8(back1(i,j)/frameNum_Original); endend
·视频预处理
for i = 1:frameNumpixel(:,:,i) = rgb2gray(read(Obj,i));end
这个步骤比较简单,就是将每个视屏帧图片变成灰度图,一般系统处理。
三、部分MATLAB代码
顶层代码如下:
clc;
close all;clear all;
%Step1:读取视频
%Step1:读取视频
[Obj,frameNum_Original] = get_AVI('avi\02.AVI');%Step2:背景的提取
%Step2:背景的提取
%level越大,背景提取的越精确,通过序列平均法来求背景,所以对于背景的获取,
%我们采用的是前面车辆较少的视频
%在实际中,我们一般统计低峰期的平均值,所以这里我们使用01.AVI
[Obj2,frameNum_Original2] = get_AVI('avi\01.AVI');
[back_ground,back1] = get_background(Obj2,frameNum_Original2);% Step3:视屏预处理
% Step3:视屏预处理
frameNum = frameNum_Original;
pixel = vedio_op(Obj,frameNum);% Step4:汽车捕获
% Step4:汽车捕获[bw,L2,L3,bws,L,pixel2] = get_car(pixel,frameNum,back_ground);%显示捕获后的汽车结果。
implay(pixel2);% %车数目的计算,为了防止图像处理过程中的误差,一般我们选取图层中的合适位置进行统计车辆
% %一般选取离摄像头近的区域
% %检测车的数量
% %检测车的密度。测试总数量/测试总时间
% %计算每秒中通过车子数目。即车流密度。
% [num_car,num_p] = car_number(pixel,frameNum,L2);%检测车的数量
rows = size(L3,1); %240
cols = size(L3,2); %320
Length = size(L3,3);area=0;
TotalPic=0;for i =1:Length
TotalPic=car_information(bws(:,:,i),cols,rows,0.5);if isempty(TotalPic)==0area(1:length(TotalPic(4,:)),i)=TotalPic(4,:);end
end
num(1:size(area,2))=0;
for i = 1:size(area,2)for j = 1:size(area,1)if area(j,i)>100num(i) = num(i) + 1;elsenum(i) = num(i);end end
endareas =sort(area(:,i));
[Carnum,v]=max(num)% % 检测车的种类
% % area=0;
% % TotalPic=0;
% % for i =1:Length%防止因为汽车开远,导致估计类别错误,所以只统计视频下半部分1/3的车辆面积大小
% % TotalPic=car_information(bws(0.5*rows:rows,:,i),cols,rows/2,0.5);
% % if isempty(TotalPic)==0
% % area2(1:length(TotalPic(4,:)),i)=TotalPic(4,:);
% % end
% % end
四、仿真结论分析
这个是GUI的界面,我们分别对这个界面做介绍。
第一个窗口显示的是原始的视屏
第二个窗口是提取视屏的背景。
第三个窗口是汽车跟踪,将汽车跟踪效果显示。
第四个窗口是画线,将用户画线后的区域分为两个区间,通过检测区间后,显示跟踪效果。
下面对这个GUI的操作做介绍:
操作一:”打开视频”
我们可以看到第一个画面开始播放原始的视屏文件。
操作二:”视频背景提取”
第二个窗口将显示提取的背景,显然提取的背景是正确的。
操作三:”汽车跟踪”
点击此按钮,汽车就会被跟踪。
后面的按钮“跟踪效果重复”是指将跟踪的视屏效果反复播放,
“逐帧显示”就是将跟踪效果按一帧一帧的效果显示,可以看到整个效果。
操作四:”画线(上移)” ”画线(下移)”
可以在视屏的屏幕上画一个线,用来划分区域。过了区域的车开始检测,不过的不检测。
操作五:“过线检测”“循环显示”
未过区域,不检测
通过区域,开始检测
A13-04
基于MATLAB的视频车辆跟踪和计数系统仿真相关推荐
- 【点击百度快照】基于MATLAB的运动车辆跟踪检测系统(GUI,视频读取)
一.课题介绍* 本设计为基于MATLAB的运动车辆跟踪检测系统.带有一个GUI界面,可以读取高速路车流视频,读取视频信息,并且统计每辆车经过左车道还是右车道,车速和平均速度检测,以及某一帧下的车流密度 ...
- 基于MATLAB的视频运动目标跟踪与检测定位系统
一.课题背景 视频运动目标检测与跟踪算法是计算机视觉领域的一个核心课题,也是智能视频监控系统的关键底层技术.它融合了图像处理.人工智能等领域的研究成果,已经广泛应用于安保监控.智能武器.视频会议.视频 ...
- 【GPS仿真】基于matlab GPS信号捕获跟踪定位仿真【含Matlab源码 1960期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GPS仿真]基于matlab GPS信号捕获跟踪定位仿真[含Matlab源码 1960期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...
- 【CV/Matlab系列】基于matlab的视频质量仿真评价系统设计【含Matlab源码】
DATE: 2020.12.20 文章目录 前言 1.代码获取方式 2.设计要求 3.视频评价系统展示 3.1.MPEG-2压缩 3.2.H.264压缩 前言 在之前毕业设计时,实现了基于matlab ...
- 【GPS仿真】基于matlab GPS信号捕获跟踪【含Matlab源码 2126期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GPS仿真]基于matlab GPS信号捕获跟踪[含Matlab源码 2126期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...
- 基于matlab电热水器模糊温度控制,基于Matlab的锅炉过热汽温模糊控制系统仿真
收稿日期 : 20021015. 作者简介 : 杨 涛(19782) ,男 ,硕士研究生 ;武汉 ,华中科技大学能源与动力工程学院 (430074) . 基于 Matlab 的锅炉过热汽温模糊控制系统 ...
- matlab 励磁电机仿真,基于MATLAB的同步发电机PSS与励磁系统仿真
基于MATLAB的同步发电机PSS与励磁系统仿真(论文12000字,外文翻译) 摘要:本文主要关注了电力系统稳定器(PSS)和励磁控制器在维持同步发电机运行稳定性中的作用,简述了两者的概念.原理.作用 ...
- 基于MATLAB的视频运动目标检测识别
一.课题介绍 视频图像处理技术广泛用于工业.安全.医疗.管理等领域.运动目标的检测和跟踪是图像处理技术在视频序列图像处理方面的一个重要应用,在航天.交通.机器人视觉.视频监控.公共场所客流数据监测等场 ...
- 毕业设计-基于机器视觉的行人车辆跟踪出入双向检测计数
目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言
- 基于PID算法控制车辆跟踪圆形轨迹 MATLAB代码
clear all; close all; clc;%% 参数 ts=0.1; t=30; d=1.45; p=-0.6;%% 初始状态 x(1)=0; y(1)=0; xita(1)=0; v=3; ...
最新文章
- Linux多线程同步------条件变量
- 使用sublime text 执行 tcl 出错
- NLP:LSTM之父眼中的深度学习十年简史《The 2010s: Our Decade of Deep Learning / Outlook on the 2020s》的参考文献
- PageRanke算法
- js通过身份证获取年龄
- matlab绘制路线图_绘制国际水域路线图
- postman如何发送application/json类的post请求
- Android实现自定义曲线截屏,Android实现价格走势自定义曲线图
- 共享可写节包含重定位_理解重定位
- Linux下配置Hadoop全分布式环境
- 软件体系架构课下作业01
- Lync部署学习笔记(一)
- 0712CF解题报告
- 计算机网络实验——使用网络协议分析仪Wireshark
- 一起学Kubernetes——设计概览
- 润物无声因挚爱,育人无痕待花开
- OpenStack Placement部署(5)
- vscode html 换行设置
- JSFL 批量转化fla脚本文件
- (附源码)Springboot+mysql+基于VUE框架的商城综合项目设计与实现 毕业设计111612
热门文章
- 豆瓣电影评论情感分析(含代码+数据)
- 利用RemoteJoy进行usb视频输出教程(无需IRshell)
- 网络数据包的抓包(解析数据包内容)
- php 模块不存在,模块不存在:index.php?
- 数电实验1:五输入表决器
- 转移到ios下载安卓_转移到ios下载-转移到ios app下载v2.10.0 安卓最新版-2265安卓网...
- Web前端开发师必备的8个工具
- 串口硬盘如何应用于并口硬盘计算机,串口硬盘和并口硬盘如何区别?
- MySQL命令行乱码问题的解决
- Kubernetes 持续集成 SpringCloud