边缘检测

我们可以用边缘检测,来把颜色变化明显的线区分初来,边缘检测是卷积的一种.比如我们需要检测下图中的车道线.

# coding=utf-8  
import cv2
import numpy as np

img = cv2.imread('b.jpg')

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

gaus = cv2.GaussianBlur(gray, (3, 3), 0)

edges = cv2.Canny(gaus, 50, 150,apertureSize = 3)

打印边缘检测的结果看一下效果

使用霍夫变换检测直线

边缘检测只是区分出了边缘处的点,如果想要画出线我们可以使用霍夫变换把点连接成线.

lines = cv2.HoughLinesP(edges, 1, np.pi / 180, 100, minLineLength=10, maxLineGap=50)

for line in lines:
    x1, y1, x2, y2 = line[0]
    cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2)

cv2.imshow("houghline", img)
cv2.waitKey(5000)

看下效果

posted @ 2018-05-15 16:57:28
评论加载中...

发表评论