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

2023-05-16

一、课题介绍

本设计为基于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
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

strcat matlab_基于MATLAB的运动车辆跟踪检测系统 的相关文章

  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • MATLAB 图中轴标签与轴之间的距离

    我正在使用 MATLAB 绘制一些数据 我想调整轴标签与轴本身之间的距离 但是 只需向标签的 位置 属性添加一点即可使标签移出图窗窗口 是否有 保证金 属性或类似的东西 在上图中 我想增加数字和标签 Time s 之间的距离 同时自动扩展数
  • 在 MATLAB 中定义其他中缀运算符

    有没有办法在 MATLAB 中定义额外的中缀运算符 具体来说 我想定义两个中缀运算符 gt and lt gt 这些符号是理想的 但如果需要 它可以是单个字符 它调用函数implies and iff以同样的方式 calls and and
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 归一化互相关的基础知识

    我正在尝试使用范数校正2 归一化互相关 http en wikipedia org wiki Cross correlation Normalized cross correlation 来自 MATLAB 用于计算发育中胚胎中移动形状的速
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • 将数据提示堆栈放在轴标签顶部,并在轴位置发生更改后更新轴标签

    此问题仅适用于 unix matlab Windows 用户将无法重现该问题 我在尝试创建位于 y 轴标签顶部的数据提示时遇到问题 下图很能说明问题 正如您所看到的 在 ylabel 附近创建的数据提示将到达 ylabel 文本的底部 而期
  • 动态调整自定义刻度数

    Taking SO 的一个例子 https stackoverflow com a 7139485 97160 我想根据当前视图调整轴刻度 这是默认行为 除非设置自定义的刻度数 下图展示了由此产生的行为 左侧是默认行为 右侧是带有自定义刻度
  • 直方图均衡结果

    I am trying to code histogram equalization by my self but the results are different from the built in function in matlab
  • 如何在向量中的所有点之间绘制线?

    我有一个包含二维空间中一些点的向量 我希望 MATLAB 用从每个点到每个其他点绘制的线来绘制这些点 基本上 我想要一个所有顶点都连接的图 你能用情节来做到这一点吗 如果可以 怎么做 一种解决方案是使用该函数为每个点组合创建一组索引MESH
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca
  • 将 kinect RGB 和深度值转换为 XYZ 坐标

    我正在寻找一种简单的方法将 kinect RGB 和深度值转换为 XYZ 坐标 使用 MATLAB 我的目标是一个输入为以下内容的函数 每个点的 RGB 和深度值Kinect相机 并输出 每个点的 x y 和 z 值 RGB 深度 RGB
  • MATLAB:将当前文件夹设置为脚本位置

    我在不同的文件夹中有一些脚本和数据 我使用addpath和相对路径经常 我的问题是 只有当我的当前文件夹是我执行的脚本所在的位置时 这才有效 例如 如果我执行添加路径 X 的脚本 A 然后执行位于路径 X 中的脚本 B 则 Matlab 不
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • Matlab:2行10列的子图

    如何在 matlab 中绘制 20 幅图像 2 行 10 列 我知道我必须使用 子图 功能 但我对给出的参数感到困惑 我尝试给予 子图 2 10 行索引 列索引 但它似乎不起作用 请帮忙 的前两个参数subplot函数分别给出图中子图的总行

随机推荐