# Pipe Line

1. RGB to GRAY
2. Gauss Blur
3. Canny Edges
4. Hough Transform
5. Dram Lines

Canny Edges：

# Gray

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

# Read in and grayscale the image
gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)

Y0.299R+0.587G+0.114B

# Gauss Blur

• 原理：重新计算图片中每个点的值，计算的时候取该点与周围点的加权平均，权重符合高斯分布。
• 作用：降低图片噪声和减少细节（增强图片在不同scale下的structure），并保留边界。同时Gauss FIlter是一种低通滤波器，只允许低频部分通过，限制高频部分（例如像素值剧烈升高或降低的早点）。
• 效果：像通过半透明的玻璃看图片一样。
# Define a kernel size and apply Gaussian smoothing
kernel_size = 5
blur_gray = cv2.GaussianBlur(gray,(kernel_size, kernel_size),0)

# Canny Edges

## Double threshold

• low_threshold < gradient < high_threshold: 当且仅当其存在相连点的梯度大于high_threshold才保留
# Define our parameters for Canny and apply
low_threshold = 50
high_threshold = 150
edges = cv2.Canny(blur_gray, low_threshold, high_threshold)

# ROI(Region of Interest) Based Edge Filtering

# Next we'll create a masked edges image using cv2.fillPoly()

# This time we are defining a four sided polygon to mask
imshape = image.shape
vertices = np.array([[(50,imshape[0]),(420, 280), (550, 280), (950,imshape[0])]], dtype=np.int32)
masked_edges = cv2.bitwise_and(edges, mask)

# Hough Transform

## 车道线

Hough变换的代码如下，其参数的含义见注释

rho = 2 # distance resolution in pixels of the Hough grid
theta = np.pi/180 # angular resolution in radians of the Hough grid
threshold = 15     # minimum number of votes (intersections in Hough grid cell)
min_line_length = 40 #minimum number of pixels making up a line
max_line_gap = 20    # maximum gap in pixels between connectable line segments
line_image = np.copy(image)*0 # creating a blank to draw lines on

# Run Hough on edge detected image
lines = cv2.HoughLinesP(edges, rho, theta, threshold, np.array([]), min_line_length, max_line_gap)

# Lane Extrapolation

1. 将所有直线按照斜率分成左右两部分。
2. 每部分求平均或者median得到加权的直线参数。
3. 根据原图片的位置描绘出新参数的直线。

# 参考

• 本文已收录于以下专栏：

## opencv车道线检测

• chongshangyunxiao321
• 2016年03月28日 16:49
• 16271

## 使用OpenCV完成车道线检测功能

• u012201326
• 2015年02月25日 13:56
• 16813

## 车道线检测代码（OpenCv）以及理论算法说明

• 2018年01月21日 12:49
• 6.12MB
• 下载

## 车道线检测+车道线跟踪+车道线识别

• Chapmancp
• 2017年06月28日 16:09
• 3721

## 车道线检测-模式识别综合实验

• u011584612
• 2016年03月15日 21:47
• 2322

## 车道线检测霍夫直线检测原理分析

• happy_stars_2016
• 2016年09月28日 16:01
• 4140

## 车道检测源码分析系列（一）

• qq535033459
• 2015年05月11日 14:43
• 3364

## opencv 车道线检测（三）

• Fate_fjh
• 2017年03月10日 22:33
• 1748

## 无人驾驶学习笔记

• myboyliu2007
• 2016年12月17日 23:42
• 1067

## 车道线检测文献解读系列(一) 基于机器视觉的高速车道标志线检测算法的研究_李晗

• qq535033459
• 2015年05月21日 20:24
• 2905

举报原因： 您举报文章：无人驾驶之车道线检测简易版 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)