基于MATLAB的红绿灯识别检测(可外接摄像头)

项目介绍:交通信号灯是智能车辆在城市环境中行驶的主要指示信号,在城市交通安全中发挥了不可或缺的作用。交通信号灯通常设在交叉口,能够供应智能车辆的方位信息,查看和辨认交通信号灯的情况是智能车辆感知的重要任务。红绿灯识别技术是智能交通系统一个重要方面,而且对无人驾驶以及智能车辆的辅助驾驶系统发展有积极推动作用。常用的红绿灯识别方法主要有两类:基于颜色方法和基于模板匹配的方法。在简单工况下,可在各种颜色空间中利用信号灯颜色的先进行分割得到兴趣区域,然后再通过信号灯所特有的形状特征等进行进一步的判定。本代码通过对红绿灯设置HSV阈值范围;对提取的部分信号灯颜色进行二值化、膨胀、腐蚀处理;连通域判断提取;信号灯部分截取,图像分割等,最终实现红绿灯的识别。

项目依赖环境及库:support package for usb webcams、image acquisition toolbox

37ce94e9c7414f5ea7b1261ed9e7947a.png

3d3b7ae061cc4938a0800b2b7ccf4157.png

图1、图2 项目需安装附加功能资源

硬件设备安装:连接USB摄像头(如图1)

c56d2c18e5814dc1a20d318dddb23a39.jpeg

图3 摄像头的连接

(摄像头直接连接即可、可以不连摄像头直接读取电脑图片\视频或使用笔记本自带摄像头)

项目工程文件使用方法:

  1. 打开MATLAB,将MATLAB路径调整到代码所保持的文件路径(我的是D/实验室/红绿灯/MATLAB的红绿灯检测/代码)

a88d82cc0af84ff6a35bc55c8e77180a.png

图4 文件路径

        2.双击打开file1.m文件,点击编辑器中的运行

82102a8d40e24c2a8cc1bd55dcd89d8f.png

图5 运行

将出现如下界面,根据图片存放的路径,找到图片即可

034de1cb6b864d8083b51f2ca5bc598c.png

图6 运行后界面

     0ea3ad1cd6b7495283dd03b804118fce.png

图7 选择图片

3.点击打开,即可进行红绿灯的检测

0cd1884245174a89a84679d3d3a061f7.png

图8 检测结果

4.双击打开file2.m,运行步骤与file1相同,但file2.m比file1.m多了对红绿灯的区域分割、二值连通分量等

  ad09c68bd5ca4c79a3b03696c14dc0fa.png

 图10 file2.m的结果

5.在连接好USB摄像头后打开USB1.m,将红绿灯照片放在摄像头面前(尽量把手机亮度调高)。点击运行

cd813813d9c44f09a064f238f24424ad.jpeg   

图11 摄像头与红绿灯

                 4a52639d7af6482899c157aa2435b132.png

 图12 运行结果

6. 运行USB2步骤与USB1相同,但USB2.m比USB1.m多了对红绿灯的区域分割、二值连通分量等

注:

1.两种代码均可运行其中 1 为精简版   

 2. file为读取电脑上的图片代码

 3.USB为读取外接摄像头代码

可能会遇到的问题、即解决办法:

  1. 摄像头连接不上(可能是matlab之前打开了摄像头没有关闭,关闭matlab重新打开或者命令行窗口输入clc clear)
  2. 使用USB摄像头检验时黄灯检测成红灯(由于色域的相近,有一定概率会检测错误, 可以调高手机/信号灯亮度或者将信号灯靠近摄像头,这种解决方法也可以解决红绿灯检测出错的情况)   
  3. 检测结果混乱(这是由于工作区未清空引起,可以在代码开头加入clc clear,也可以在工作区输入)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值