基于MATLAB的运动车辆跟踪检测系统

一、课题介绍

本设计为基于MATLAB的运动车辆跟踪检测系统。带有一个GUI界面,可以读取高速路车流视频,读取视频信息,并且统计每辆车经过左车道还是右车道,车速和平均速度检测,以及某一帧下的车流密度,以及最后总共经过的车辆总数。将运动检测到的目标用方框框起来。是一个非常不错的选题。

二、实现功能

车流密度:一定时间内经过车辆的总数;

车流量:某一帧下的车辆数目;

车速:经过车辆的实时速度;

平均速度:所有车辆的平均速度;

三、GUI界面以及运行预期效果

GUI设计图

GUI运行效果图

四、主要源码

1、视频读取

filename, cd1\] = uigetfile( ... {'\*.avi;\*.mp4;'},'Pick an Video'); if filename filename = \[cd1,filename\]; video = vision.VideoFileReader(filename, 'ImageColorSpace', 'RGB'); end axes(handles.axes1); set(gca,'Xtick',\[\]); set(gca,'Ytick',\[\]); box on; 2、判定车道以及车速 thresh = 120; % 判定左车道和右车道分届的阈值 for n = 1 : size(bbox,1) fprintf('y: %f \\n',bbox(n,2)); pos = bbox(n,1) + bbox(n,3); if bbox(n,2) \< 45 \&\& bbox(n,2) \> 35 if pos \< thresh \&\& (size(left,1) == 0 \|\| i - left(size(left,1)) \> 4) % 记住刚进入的车 left = \[left;i\]; elseif (size(right,1) == 0 \|\| i - right(size(right,1)) \> 4) right = \[right;i\]; end else fm = 30; % 视频帧率,参数可调,这里假设为30帧每秒 len = 30; % 视频中路段的长度,参数可调,这里先定位100m if pos \< thresh % 判断要开出该区域的车 if bbox(n,2) \> 85 \&\& size(left,1) \> 0 vleft = i - left(1,1) + 2; % 这里计算左车道车速,帧数 if vleft \< 30 \&\& vleft \> 4 % 因为车速再慢也会大于一定速度 left(1,:) = \[\]; t = vleft/fm; % 计算实际时间 帧数/每秒帧数 vleft = len/t; % 计算实际车速 距离/实际时间,vl为坐车道速度 v1=v1+vleft; v1 fprintf('左车道,车速: %f \\n',vleft); set(handles.edit_speed,'string',strcat('左车道:',num2str(vleft))); else left(1,:) = \[\]; end end else if bbox(n,2) \> 80 \&\& size(right,1) \> 0 vr = i - right(1,1); % 这里计算右车道的车速,这里还是帧数 if vr \< 35 right(1,:) = \[\]; t = vr/fm; % 计算实际时间 帧数/每秒帧数 vr = len/t; % 计算实际车速 距离/实际时间 v2=v2+vr fprintf('右车道,车速: %f \\n',vr); set(handles.edit_speed,'string',strcat('右车道:',num2str(vr))); else right(1,:) = \[\]; end end end end 3、车辆计数 for j=1:(i-2) %对检测到的车辆进行求和 if count(j)==0 \& count(j+1)\>0 k=j+1; else if count(j)\>0 \& count(j+1)==0 q=j; summ1=summ1+max(count(k:q)); cheliang_jishu(p)=max(count(k:q)); p=p+1; end end end

相关推荐
阿沁QWQ28 分钟前
C++的map和set
开发语言·c++
武子康37 分钟前
Java-193 Spymemcached 深入解析:线程模型、Sharding 与序列化实践全拆解
java·开发语言·redis·缓存·系统架构·memcached·guava
韩凡1 小时前
HashMap的理解与结构
java·开发语言·哈希算法
小猪快跑爱摄影1 小时前
【AutoCad 2025】【C#】零基础教程(二)——遍历 Entity 插件 =》 AutoCAD 核心对象层级结构
开发语言·c#·autocad
Dxy12393102161 小时前
Python字符串处理全攻略
开发语言·python
毕设源码-朱学姐2 小时前
【开题答辩全过程】以 基于Java的失物招领系统设计与实现为例,包含答辩的问题和答案
java·开发语言
Gomiko2 小时前
JavaScript进阶(四):DOM监听
开发语言·javascript·ecmascript
清晓粼溪2 小时前
统一异常处理
java·开发语言
syt_10132 小时前
grid布局之-子项放置4
开发语言·javascript·ecmascript
喵了meme2 小时前
C语言实战2
c语言·开发语言·网络