资源简介
matlab 基于视频的车流量统计源码附带需要vision 工具箱
代码片段和文件信息
% 创建系统对象,用于读入待处理视频
filename = ‘viptraffic.avi‘;
hvfr = vision.VideoFileReader(filename ‘ImageColorSpace‘ ‘RGB‘);
% 创建系统对象,用于色彩空间转换
hcsc = vision.ColorSpaceConverter(‘Conversion‘ ‘RGB to intensity‘);
% 创建系统对象,用于用高斯混合模型检测背景
hfdet = vision.ForegroundDetector(...
‘NumTrainingframes‘ 5 ... % 取连续五帧进行检测背景
‘InitialVariance‘ (30/255)^2); % 初始标准差为 30/255
% 创建系统对象,用于检测出包含汽车运动的图像块
hblob = vision.BlobAnalysis( ...
‘CentroidOutputPort‘ false ...
‘AreaOutputPort‘ true ...
‘BoundingBoxOutputPort‘ true ...
‘OutputDataType‘ ‘single‘ ...
‘MinimumBlobArea‘ 250 ...
‘MaximumBlobArea‘ 3600 ...
‘MaximumCount‘ 80);
% 创建系统对象,用于对检测出的运动车辆进行框画
hshapeins = vision.ShapeInserter( ...
‘BorderColor‘ ‘Custom‘ ...
‘CustomBorderColor‘ [0 255 0]);
% 创建系统对象,用于标注检测到车辆的个数
htextins = vision.TextInserter( ...
‘Text‘ ‘%4d‘ ...
‘Location‘ [1 1] ...
‘Color‘ [255 255 255] ...
‘FontSize‘ 12);
% 创建系统对象,用于显示结果
sz = get(0‘ScreenSize‘);
pos = [20 sz(4)-300 200 200];
hVideoOrig = vision.VideoPlayer(‘Name‘ ‘Original‘ ‘Position‘ pos);
pos(1) = pos(1)+220; %在右侧建立下一个视窗
hVideoFg = vision.VideoPlayer(‘Name‘ ‘Foreground‘ ‘Position‘ pos);
pos(1) = pos(1)+220;
hVideoRes = vision.VideoPlayer(‘Name‘ ‘Results‘ ‘Position‘ pos);
line_row = 23; % 定义感兴趣区域(ROI)
% 以下的程序段为对输入的视频图像进行处理
while ~isDone(hvfr)
image = step(hvfr); % 读入视频的每一帧
y = step(hcsc image); % 将彩色图像转换成灰度图像
% 采用自动白平衡算法去除灰度突变
y = y-mean(y(:));
fg_image = step(hfdet y); % 检验背景
% 采用数学形态学,在前景图像中检测变化的联通图像块区域的面积
[area bbox] = step(hblob fg_image);
image_out = image;
image_out(22:23::) = 255; % 仅对经过白线后的车辆进行计数
image_out(1:151:30:) = 0; % 将背景置为黑色
Idx = bbox(:2) > line_row; %选择感兴趣区域.
% 当在感兴趣区域中,联通图像块的比例占整个变化区域的40%以上时,便认为是车辆
ratio = zeros(length(Idx)1);
ratio(Idx) = single(area(Idx1))./single(bbox(Idx3).*bbox(Idx4));
ratiob = ratio > 0.4;
count = int32(sum(ratiob)); % 车辆的数量
bbox(~ratiob:) = int32(-1);
% 将检测出的车辆圈画出来
image_out = step(hshapeins image_out bbox);
% 显示检测汽车的数量
image_out = step(htextins image_out count);
step(hVideoOrig image); % 原始视频
step(hVideoFg fg_image); % 前景
step(hVideoRes image_out); % 用方框勾画检测出的车辆
end
%关闭视频文件
release(hvfr);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-03-17 11:11 基于视频的车流量统计\
文件 2914 2018-05-14 23:00 基于视频的车流量统计\example6.m
文件 208896 2005-04-04 13:17 基于视频的车流量统计\viptraffic.avi
文件 35 2015-03-17 11:12 基于视频的车流量统计\代码说明.txt
相关资源
- 相关向量机的快速算法
- HHT变换的三种方法 Matlab,包含CMD分解
- 通信原理matlab最全仿真,曹丽娜,樊
- 遥感数字图像处理-matlab-主成份及穗帽
- SIFT特征匹配 MATLAB 实现
- 《现代通信系统-使用MATLAB》,《数字
- MATLAB下PSAT工具箱使用说明中文版
- 基于MATLAB的BP神经网络应用绝对好资源
- 人脸检测三个不同小程序,matlab,其
- OFDM—MIMO系统的matlab程序
- 关于PID整定的matlab,m文件
- matlab编写的 32个降维程序
- matlab-lssvm程序
- 基于matlab的cdma通信系统的仿真
- 经验模态分解+样本熵matlab程序代码
- 图论算法及其MATLAB实现全书+源代码
- 基于模型的设计_MCU篇.pdfMATLAB,SIMUl
- 手写数字识别,基于BP神经网络,ma
- MATLAB深度学习工具箱
- matlab相关8本电子书
- 配电网潮流计算程序matlab
- 人脸识别MATLAB,亲测可运行
- 模式识别中遗传算法的MATLAB实现
- 用matlab实现双音多频信号频谱分析
- 基于matlab的声音去噪研究
- 数学建模MATLAB必备的程序源代码
- MATLAB在通信工程中的应用论文及源代
- 基于matlab指纹识别
- 飞机纵向增稳系统设计matlab
- gold序列自相关.docx
川公网安备 51152502000135号
评论
共有 条评论