资源简介
数字图像处理——基于视频的车流量统计 matlab 源码 + 数据
代码片段和文件信息
% 创建系统对象,用于读入待处理视频
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);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2913 2012-05-11 17:14 基于视频的车流量统计\example6.m
文件 208896 2005-04-04 13:17 基于视频的车流量统计\viptraffic.avi
文件 35 2015-03-17 11:12 基于视频的车流量统计\代码说明.txt
目录 0 2015-03-17 11:11 基于视频的车流量统计
----------- --------- ---------- ----- ----
211844 4
相关资源
- 基于核回归 Kernel regression 的图像处理
- matlab数字图像处理 有约束最小平方恢
- OTSU二值化算法matlab
- 基于MATLAB的医学图像处理系统
- 基于matlab的指针式仪表的识别与自动
- 详解MATLAB数字图像处理
- matlab原木图像分割与计数.zip
- Matlab保留ROI区域
- 利用MATLAB从图片中提取曲线数据的小
- 基于matlab的自动报靶系统.rar
- 图像处理 人脸识别皮肤提取 经典ma
- 伪彩色 MATLAB代码
- 集装箱号识别中图像及字符的处理分
- MATLAB处理向前映射和向后映射
- 局部二值模式(Local Binary Patterns)图
- 运动模糊图像处理 维纳滤波算法
- 数字图像处理文献综述
- ROF 去噪 matlab
- GMM模型,用MATlab编写的。可以用来训
- MATLAB dcm图像转raw图像代码
- 图像处理中经典细化算法集合matlab
- matlab实现图像透明叠加
- 直方图均衡化Matlab源代码
- 直方图均衡化 matlab 代码
- 图像处理/图像分割实验/prewitt/robert
- 基于图像处理的汽车牌照识别系统m
- matlab对两张彩色图进行直方图匹配并
- 基于matlab的傅里叶频域滤波
- matlab基于小波变换的图像融合代码
- 根据亮度分布检测火焰
评论
共有 条评论