资源简介
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
相关资源
- matlab 爱的表白
- JPEG基本系统的matlab实现
- 用MATLAB做一个小显示时间的小日历
- Bursa_Wolf,布尔莎坐标转换,matlab,平
- matlab实现亚像素
- 自适应全变分图像去噪Matlab源代码
- matlab实现经典功率谱估计
- 基于matlab,gui的人脸识别(PCA)
- 抽值插值实验 matlab及实验报告
- 图像处理,matlab程序,retinex_frankle_
- 信道容量的仿真代码
- 量子粒子群算法的matlab实现,有程序
- matlab蔡氏电路相图
- 利用MATLAB优化电力系统稳定器
- QPSKMATLAB仿真程序
- LDPC编码的matlab实现
- MATLAB中ARQ程序代码
- 线性调频连续波雷达仿真matlab,汽车
- 基于MATLAB的SVD水印技术
- Petri网MATLAB 工具包-MATLAB Petri Net Tool
- MATLAB海杂波模型仿真
- 基于matlab,读取图像文件并计算其图
- K-L变换算法
- 基于matlab的数字图像处理论文
- 基于Matlab实现的DES加密
- Gabor变换,MATLAB,边缘检测
- Matlab串口接收数据
- matlab傅里叶级数展开程序
- MP匹配追踪算法Matlab仿真
- matlab传递函数幅值,角度的计算----一
评论
共有 条评论