车道线检测程序

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
# 引入操作图片的库
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

# 读入图片并输出一些状态
image = mpimg.imread('test.jpg')
print('This image is: ',type(image),   'with dimensions:', image.shape)

# 获取图片长和宽
ysize = image.shape[0]
xsize = image.shape[1]
# Note: 记住用的是copy() 而不是"="
color_select = np.copy(image)
# 定义我们选择原则
# Note: 如果你运行了这个代码,你会发现这都是不可见的值
# 但是你很快有机会在测试中用到
red_threshold = 0
green_threshold = 0
blue_threshold = 0
rgb_threshold = [red_threshold, green_threshold, blue_threshold]

# 识别阈值之下的像素
thresholds = (image[:,:,0] < rgb_threshold[0]) \
            | (image[:,:,1] < rgb_threshold[1]) \
            | (image[:,:,2] < rgb_threshold[2])
color_select[thresholds] = [0,0,0]

# 展示图片
plt.imshow(color_select)
plt.show()

下面展示例程图片
车道线检测程序_第1张图片
运行程序之后的效果如下:
车道线检测程序_第2张图片
修改如下代码,效果图为

red_threshold = 255
green_threshold = 0
blue_threshold = 0

车道线检测程序_第3张图片
修改如下代码,效果图为

red_threshold = 0
green_threshold = 255
blue_threshold = 0

车道线检测程序_第4张图片

red_threshold = 0
green_threshold = 0
blue_threshold = 255

车道线检测程序_第5张图片

red_threshold,green_threshold ,blue_threshold都被设置为0时,意味着筛选的阈值是0,所有的像素都会被保留下来。

当设置如下代码时,red_threshold = green_threshold = blue_threshold = 200 车道线效果最好
车道线检测程序_第6张图片

你可能感兴趣的:(无人驾驶)