0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python中用区域掩模实现车道线检测

麦辣鸡腿堡 来源:古月居 作者:绿竹巷人 2023-11-17 16:49 次阅读

1.颜色阈值+ 区域掩模

我们可以仅仅通过设置一些RGB通道阈值,来提取车道线。

以下的代码设置了RGB通道阈值为220,大于220的像素将设置为黑色,这样可以将测试图片中的车道线提取出来

效果如下

图片

我们发现符合阈值的像素既包括了车道线,也包含了其他非车道线部分。

显然,一个成熟的自动驾驶感知算法,是不可能使用这种方法的。仅仅依靠颜色,既不科学也不鲁棒。

有一种改进思路是利用图像掩模的方法

假设拍摄图像的前置摄像头安装在汽车上的固定位置,这样车道线将始终出现在图像的相同区域中。我们将设置了一个区域,认为车道线处于该区域内。

我们设置了一个三角形的区域,原则上你可以使用其他形状

![图

python代码如下

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np


# Read in the image
image = mpimg.imread('test.jpg')


# Grab the x and y sizes and make two copies of the image
# With one copy we'll extract only the pixels that meet our selection,
# then we'll paint those pixels red in the original image to see our selection
# overlaid on the original.
ysize = image.shape[0]
xsize = image.shape[1]
color_select= np.copy(image)
line_image = np.copy(image)


# Define our color criteria
red_threshold = 220
green_threshold = 220
blue_threshold = 220
rgb_threshold = [red_threshold, green_threshold, blue_threshold]


# Define a triangle region of interest (Note: if you run this code,
left_bottom = [0, ysize-1]
right_bottom = [xsize-1, ysize-1]
apex = [650, 400]


fit_left = np.polyfit((left_bottom[0], apex[0]), (left_bottom[1], apex[1]), 1)
fit_right = np.polyfit((right_bottom[0], apex[0]), (right_bottom[1], apex[1]), 1)
fit_bottom = np.polyfit((left_bottom[0], right_bottom[0]), (left_bottom[1], right_bottom[1]), 1)


# Mask pixels below the threshold
color_thresholds = (image[:,:,0] < rgb_threshold[0]) | 
                    (image[:,:,1] < rgb_threshold[1]) | 
                    (image[:,:,2] < rgb_threshold[2])


# Find the region inside the lines
XX, YY = np.meshgrid(np.arange(0, xsize), np.arange(0, ysize))
region_thresholds = (YY > (XX*fit_left[0] + fit_left[1])) & 
                    (YY > (XX*fit_right[0] + fit_right[1])) & 
                    (YY < (XX*fit_bottom[0] + fit_bottom[1]))
# Mask color selection
color_select[color_thresholds] = [0,0,0]
# Find where image is both colored right and in the region
line_image[~color_thresholds & region_thresholds] = [255,0,0]


# Display our two output images
plt.imshow(color_select)
plt.imshow(line_image)


# uncomment if plot does not display
plt.show()
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RGB
    RGB
    +关注

    关注

    4

    文章

    798

    浏览量

    58390
  • 检测
    +关注

    关注

    5

    文章

    4439

    浏览量

    91375
  • python
    +关注

    关注

    56

    文章

    4782

    浏览量

    84456
收藏 人收藏

    评论

    相关推荐

    matlab车道线检测算法

    matlab,如何考虑到多情况的车道线图片,如行人车辆的干扰
    发表于 03-31 16:38

    如何实现车道线分割

    深度学习方法实现车道线分割之二(自动驾驶车道线分割)
    发表于 05-22 10:16

    怎么实现基于OMAP3530平台的车道线识别检测的设计?

    本文提出的车道线识别算法的流程如下图1所示,首先通过OV7670摄像头捕获道路图像,然后按照流程图中的步骤处理图像,最后得到清晰的车道标志线,为以后智能车辆路径规划和避障提供支持。
    发表于 06-02 06:31

    基于图像的车道线检测

    基于图像的车道线检测,点击上方“3D视觉工坊”,选择“星标”干货第一时间送达文章导读本文是一篇从零开始做车道线
    发表于 07-20 06:24

    JCMSuite应用—衰减相移掩模

    在本示例中,模拟了衰减相移掩模。该掩模线/空间图案成像到光刻胶中。掩模的单元格如下图所示:掩模的基板被具有两个开口的吸收材料所覆盖。在其中
    发表于 10-22 09:20

    单片机车道线检测模型的相关资料分享

    本篇文章为车道线检测模型系列文章的第四篇,第一篇介绍了模型所使用的单片机和开发板,第二篇介绍了实时操作系统RTOS,第三篇介绍了所用到的摄像头和LCD触摸屏外设,想了解的朋友点击:(一)https
    发表于 11-25 08:02

    基于边界特征的车道标识线检测方法

    为了得到较理想的车道的标线边缘,利用车道的边缘特征对车道图像进行二值化和形态学处理,对车道区域实现
    发表于 01-13 09:48 54次下载
    基于边界特征的<b class='flag-5'>车道</b>标识<b class='flag-5'>线</b><b class='flag-5'>检测</b>方法

    单目视觉车道线识别算法及其ARM实现

    单目视觉车道线识别算法及其ARM实现
    发表于 09-24 11:38 6次下载
    单目视觉<b class='flag-5'>车道</b><b class='flag-5'>线</b>识别算法及其ARM<b class='flag-5'>实现</b>

    基于DSP Builder的行车道检测设计实现

    通过对摄像头读入的道路白线图像进行灰度变换,再检测出白线的边缘,这是实现智能车自动导航和辅助导航的基础。行车道检测系统可以应用于智能车的防撞
    发表于 11-03 16:19 0次下载
    基于DSP Builder的行<b class='flag-5'>车道</b><b class='flag-5'>检测</b>设计<b class='flag-5'>实现</b>

    一套车道线检测系统

    车道线检测主要用于驾驶辅助和无人驾驶系统,根据摄像头数量,分为单目和双目两种检测系统。出于实时性和经济性的考虑,一般采用单目检测,在对采集过
    发表于 01-31 11:26 1次下载
    一套<b class='flag-5'>车道</b><b class='flag-5'>线</b><b class='flag-5'>检测</b>系统

    基于ACP平行视觉理论的车道线检测系统设计

    过去,车道线检测性能多依赖于人工视觉验证的方法。然而这种方法不能客观量化车道线检测系统的性能。同
    的头像 发表于 05-14 10:09 8468次阅读
    基于ACP平行视觉理论的<b class='flag-5'>车道</b><b class='flag-5'>线</b><b class='flag-5'>检测</b>系统设计

    基于雷达扫描检测车道线的四种方法

    基于视觉系统的车道线检测有诸多缺陷。 首先,视觉系统对背景光线很敏感,诸如阳光强烈的林荫道,车道线被光线分割成碎片,致使无法提取出
    发表于 03-07 14:02 3158次阅读
    基于雷达扫描<b class='flag-5'>检测</b><b class='flag-5'>车道</b><b class='flag-5'>线</b>的四种方法

    单片机车道线检测模型(4)——图像处理算法

    单片机车道线检测模型(4)——图像处理算法
    发表于 11-16 18:06 20次下载
    单片机<b class='flag-5'>车道</b><b class='flag-5'>线</b><b class='flag-5'>检测</b>模型(4)——图像处理算法

    汽车电子的lidar检测车道线原理分析

    相机的光轴基本与地面平行,相机2D车道线成像和BEV视图可以视为在两个不同的视角下车道线的成像。如果我们能类比图像拼接的方法,将相机视图“拼接”到BEV视图下,理论上可以
    发表于 02-07 09:33 674次阅读

    python中用Canny边缘检测和霍夫变实现车道线检测方法

    Canny边缘检测+霍夫变换 颜色阈值+图像掩模的方法虽然简单,但是只能应对一些固定颜色车道线的场景。图像像素受光照影响将是一个极其常见的问题。 canny边缘
    的头像 发表于 11-17 16:55 921次阅读
    <b class='flag-5'>python</b><b class='flag-5'>中用</b>Canny边缘<b class='flag-5'>检测</b>和霍夫变<b class='flag-5'>实现</b><b class='flag-5'>车道</b><b class='flag-5'>线</b><b class='flag-5'>检测</b>方法