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
+关注
关注
4文章
798浏览量
58390 -
检测
+关注
关注
5文章
4439浏览量
91375 -
python
+关注
关注
56文章
4782浏览量
84456
发布评论请先 登录
相关推荐
怎么实现基于OMAP3530平台的车道线识别检测的设计?
本文提出的车道线识别算法的流程如下图1所示,首先通过OV7670摄像头捕获道路图像,然后按照流程图中的步骤处理图像,最后得到清晰的车道标志线,为以后智能车辆路径规划和避障提供支持。
发表于 06-02 06:31
JCMSuite应用—衰减相移掩模
在本示例中,模拟了衰减相移掩模。该掩模将线/空间图案成像到光刻胶中。掩模的单元格如下图所示:掩模的基板被具有两个开口的吸收材料所覆盖。在其中
发表于 10-22 09:20
单片机车道线检测模型的相关资料分享
本篇文章为车道线检测模型系列文章的第四篇,第一篇介绍了模型所使用的单片机和开发板,第二篇介绍了实时操作系统RTOS,第三篇介绍了所用到的摄像头和LCD触摸屏外设,想了解的朋友点击:(一)https
发表于 11-25 08:02
基于DSP Builder的行车道检测设计实现
通过对摄像头读入的道路白线图像进行灰度变换,再检测出白线的边缘,这是实现智能车自动导航和辅助导航的基础。行车道检测系统可以应用于智能车的防撞
发表于 11-03 16:19
•0次下载
一套车道线检测系统
车道线检测主要用于驾驶辅助和无人驾驶系统,根据摄像头数量,分为单目和双目两种检测系统。出于实时性和经济性的考虑,一般采用单目检测,在对采集过
发表于 01-31 11:26
•1次下载
基于雷达扫描检测车道线的四种方法
基于视觉系统的车道线检测有诸多缺陷。
首先,视觉系统对背景光线很敏感,诸如阳光强烈的林荫道,车道线被光线分割成碎片,致使无法提取出
发表于 03-07 14:02
•3158次阅读
汽车电子的lidar检测车道线原理分析
相机的光轴基本与地面平行,相机2D车道线成像和BEV视图可以视为在两个不同的视角下车道线的成像。如果我们能类比图像拼接的方法,将相机视图“拼接”到BEV视图下,理论上可以
发表于 02-07 09:33
•674次阅读
python中用Canny边缘检测和霍夫变实现车道线检测方法
Canny边缘检测+霍夫变换 颜色阈值+图像掩模的方法虽然简单,但是只能应对一些固定颜色车道线的场景。图像像素受光照影响将是一个极其常见的问题。 canny边缘
评论