码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python基于OpenCV的视频车道线检测系统[源码&部署教程]


    1.图片演示

    2.png

    3.png

    4.png

    5.png

    2.视频演示

    Python基于OpenCV的视频车道线检测系统[源码&部署教程]

    3.Canny边缘检测

    CV2提供了提取图像边缘的函数canny。其算法思想如下:

    1. 使用高斯模糊,去除噪音点(cv2.GaussianBlur)
    2. 灰度转换(cv2.cvtColor)
    3. 使用sobel算子,计算出每个点的梯度大小和梯度方向
    4. 使用非极大值抑制(只有最大的保留),消除边缘检测带来的杂散效应
    5. 应用双阈值,来确定真实和潜在的边缘
    6. 通过抑制弱边缘来完成最终的边缘检测
    1.高斯滤波
    gaussian = cv2.GaussianBlur(color_img, (gaussian_ksize,gaussian_ksize), gaussian_sigmax)
    
    • 1

    color_img 输入图片
    gaussian_ksize 高斯核大小,可以为方形矩阵,也可以为矩形
    gaussian_sigmax X方向上的高斯核标准偏差

    2.图片转换
    gray_img = cv2.cvtColor(input_image, flag)
    
    • 1

    用于颜色空间转换。input_image为需要转换的图片,flag为转换的类型,返回值为颜色空间转换后的图片矩阵。flag对应:
    cv2.COLOR_BGR2GRAY BGR -> Gray
    cv2.COLOR_BGR2RGB BGR -> RGB
    cv2.COLOR_BGR2HSV BGR -> HSV
    可以了解一下该函数和cv2.imread()的区别

    3.边缘检测
    edge_img = cv2.Canny(gray_img,canny_threshold1,canny_threshold2)
    
    • 1

    imag为所操作的图片,threshold1为下阈值,threshold2为上阈值,返回值为边缘图。
    6.png

    4.ROI and mask

    利用数组选取ROI(region of interest,感性趣的区域,然后与原图进行布尔运算(与运算)。
    7.png

    poly_pts = numpy.array([[[0,368],[300,210],[340,210],[640,368]]])
    
    • 1

    四个数组创建后保存在变量poly_pts中。

    mask = np.zeros_like(gray_img)
    
    • 1

    构建一个与gray_img同维度的数组,并初始化所有变量为零。

    cv2.fillPoly(mask, pts, color)
    
    • 1

    绘制多边形函数。mask为绘制对像,pts为绘制范围,color为绘制颜色。

    img_mask = cv2.bitwise_and(gray_img, mask)
    
    • 1

    与运算
    8.png

    5.霍夫变换

    lines = cv2.HoughLinesP(edge_img,  1, np.pi / 180, 15, minLineLength=40, maxLineGap=20)
    
    • 1

    edge_img: 要检测的图片矩阵
    参数2: 距离r的精度,值越大,考虑越多的线
    参数3: 距离theta的精度,值越大,考虑越多的线
    参数4: 累加数阈值,值越小,考虑越多的线
    minLineLength: 最短长度阈值,短于这个长度的线会被排除
    maxLineGap:同一直线两点之间的最大距离
    返回值::
    [np.array([[x_1,y_1, x_2, y_2]]),
    np.array([[x_1, y_1, x_2, y_2]]),
    …,
    np.array([[x_1, y_1, x_2, y_2]])]

    6.离群值过滤

    循环查找超出设定范围的斜率,并去除。

    idx = np.argmax(diff)
    
    • 1

    当diff中存放的是一维时,找到diff中最大的数值,并返回该值所在位置。
    从列表lines中把第idx数去除

    7.车道线标注

    cv2.line(img, tuple(line[0]), tuple(line[1]), color,thickness)
    
    • 1

    在图片上画线,img为所标注的目标图片,ine[0]为起点坐标,line[1]为终点坐标,thickness为线宽。
    注意两个坐标需要为tuple元组格式,即tuple(line[0])
    5.png

    8.系统整合

    1.png

    9.完整源码&环境部署视频教程

    百度面包多搜索标题名即可下载源码

    8.参考文献

    • [1]基于改进Hough变换的车道线识别[J]. 辛敏,罗山. 山西电子技术. 2021(06)
    • [2]基于改进Hough变换的车道线检测[J]. 李后隆,马骊溟,钟林伟. 汽车实用技术. 2021(07)
    • [3]基于改进Hough变换与双点去除R-最小二乘法的车道线检测优化算法[J]. 姜立标,李静轩. 科学技术与工程. 2020(05)
    • [4]基于改进Hough变换的结构化道路车道线识别[J]. 陈政宏,李爱娟,王希波,葛庆英,韩文尧,刘刚. 科学技术与工程. 2020(26)
    • [5]基于叠加约束的Hough变换车道线检测研究[J]. 伍玲玲,林志贤,郭太良. 有线电视技术. 2019(03)
    • [6]基于Hough变换的车道线检测算法设计[J]. 何旭光,江磊,罗一平,张伟伟. 农业装备与车辆工程. 2019(11)
    • [7]基于Hough变换的车道线检测[J]. 钱怡. 山东工业技术. 2017(10)
    • [8]Hough变换的车道线并行检测[J]. 王赛,徐伯庆,苏栋骐. 电子科技. 2015(12)
    • [9]一种改进Hough变换的车道线检测算法[J]. 王全. 计算机与数字工程. 2014(11)
    • [10]一种基于 Hough 变换的车道线检测新方法[J]. 许宏科,秦严严. 徐州工程学院学报(自然科学版). 2013(04)
  • 相关阅读:
    园子开店记-周边第一款:收到鼠标垫样品(新增另外3款照片)
    2003. 每棵子树内缺失的最小基因值 DFS
    vue2中render函数学习思维导图
    Spring Framework 黑马程序员-学习笔记
    基于matlab的网络通信系统自适应传输模糊控制器的实现
    7.STL中string的一些超常用函数 (附习题)
    C++中输入输出速度的优化
    SpirngBoot<读完包你更上一层楼>
    第一章: Mysql体系结构和存储引擎
    上网行为管控,一款软件就可以实现!
  • 原文地址:https://blog.csdn.net/cheng2333333/article/details/126755508
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号