智慧交通day03-车道线检测实现08: 在离线视频(非实时)中检测车道线+代码实现

简介: 在前面几节中一步步完成摄像机标定、图像畸变校正、透视变换、提取车道线、检测车道线、计算曲率和偏离距离后,在图像上实现了复杂环境下的车道线检测算法。现在我们将视频转化为图片,然后一帧帧地对视频数据进行处理

学习目标


  • 了解在视频中检测车道线的方法


在前面几节中一步步完成摄像机标定、图像畸变校正、透视变换、提取车道线、检测车道线、计算曲率和偏离距离后,在图像上实现了复杂环境下的车道线检测算法。现在我们将视频转化为图片,然后一帧帧地对视频数据进行处理,然后将车道线检测结果存为另一段视频,代码如下:


首先将前面的方法进行汇总:


def process_image(img):
    # 1.图像去畸变
    undistort_img = img_undistort(img, mtx, dist)
    # 2.车道线检测
    rigin_pipline_img = pipeline(undistort_img)
    # 3.透视变换
    transform_img = img_perspect_transform(rigin_pipline_img, M)
    # 4.精确定位车道线,并拟合
    left_fit, right_fit = cal_line_param(transform_img)
    # 5.绘制车道区域
    result = fill_lane_poly(transform_img, left_fit, right_fit)
    # 6.反投影
    transform_img_inverse = img_perspect_transform(result, M_inverse)
    # 7.计算曲率半径和偏离中心的距离
    transform_img_inverse = cal_radius(transform_img_inverse, left_fit, right_fit)
    transform_img_inverse = cal_center_departure(transform_img_inverse, left_fit, right_fit)
    # 8. 将检测结果与原始图像叠加
    transform_img_inverse = cv2.addWeighted(undistort_img, 1, transform_img_inverse, 0.5, 0)
    return transform_img_inverse


接下来,读取视频并调用上述方法:


clip1 = VideoFileClip("project_video.mp4")
white_clip = clip1.fl_image(process_image)
white_clip.write_videofile("output.mp4", audio=False)


处理结果如下所示:


9fb2625f6c3e4663bb615691db4d4d48.png


总结:


视频中的处理将之前的处理步骤进行综合,完成车道线的检测。

目录
相关文章
|
数据采集 SQL 数据可视化
大数据可视化技巧:借助PowerBI提升数据故事讲述力
【4月更文挑战第8天】Power BI助力大数据可视化,支持多种数据源连接,如SQL Server、Excel,提供数据清洗与转换功能。通过选择合适图表类型、运用颜色和大小强化表达,创建交互式仪表板。讲述数据故事时,注重故事主线设计,利用叙事技巧引导观众,并添加文本说明。分享已完成报告,提升数据驱动决策能力。动手实践,体验Power BI的强大与易用。
645 0
|
Windows
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之使用QuaZIP
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之使用QuaZIP
745 0
|
10月前
|
持续交付 Windows
如何使用Sysprep准备Windows系统并使用自动应答
通过Sysprep准备Windows系统,可实现SID重置与系统定制。进入Sysprep后,可安装软件、设置默认桌面文件,并使用Windows SIM创建应答文件以实现自动化部署。适用于系统克隆与批量部署场景。
|
消息中间件 存储 NoSQL
消息中间件之MQ详解及四大MQ比较
消息中间件之MQ详解及四大MQ比较
3208 110
消息中间件之MQ详解及四大MQ比较
|
Java Linux 开发工具
jdk(Windows/Mac含M1/M2 Arm原生JDK)安装,附各个版本JDK下载链接
jdk(Windows/Mac含M1/M2 Arm原生JDK)安装,附各个版本JDK下载链接
jdk(Windows/Mac含M1/M2 Arm原生JDK)安装,附各个版本JDK下载链接
|
SQL 关系型数据库 MySQL
【MySQL】MySQL触发器入门宝典,助力MySQL初学者打下基本功
【MySQL】MySQL触发器入门宝典,助力MySQL初学者打下基本功
315 0
|
存储 开发框架 Java
【领域驱动设计】三分钟搞懂领域驱动设计(上)
【领域驱动设计】三分钟搞懂领域驱动设计
|
运维 监控 关系型数据库