Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用开放cv和Python进行车道检测:如何改进HoughLines检测?_Python_Opencv - Fatal编程技术网

使用开放cv和Python进行车道检测:如何改进HoughLines检测?

使用开放cv和Python进行车道检测:如何改进HoughLines检测?,python,opencv,Python,Opencv,我必须使用Python和OpenCV执行车道检测。 我的代码是: import numpy as np import cv2 import math image=cv2.imread('road.jpg') gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray,50,200) while True: lines= cv2.HoughLines(edges, 1, math.pi/180.0, 100, np.

我必须使用Python和OpenCV执行车道检测。 我的代码是:

import numpy as np
import cv2
import math

image=cv2.imread('road.jpg')
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,200)
while True:
   lines= cv2.HoughLines(edges, 1, math.pi/180.0, 100, np.array([]), 0, 0)
   a,b,c = lines.shape
   for i in range(a):
        rho = lines[i][0][0]
        theta = lines[i][0][1]
        a = math.cos(theta)
        b = math.sin(theta)
        x0, y0 = a*rho, b*rho
        pt1 = ( int(x0+1000*(-b)), int(y0+1000*(a)) )
        pt2 = ( int(x0-1000*(-b)), int(y0-1000*(a)) )
        cv2.line(image, pt1, pt2, (0, 0, 255), 2, cv2.LINE_AA)
        cv2.imshow(" road ",image)
if cv2.waitKey(33) == 27:
    break
这些是输入和输出:

输入:

输出:


我需要改进houghlines检测,以便只找到与车道对应的线。我该怎么做呢?

您可以设置输入图像的阈值,以仅保留车道的可能颜色(黄色和白色),我认为。你也可以使用HSV颜色空间。谢谢,它起作用了。但现在我有另一个问题。你认为我如何测量从相机到我之前发现的线条的距离?标题将更多地涉及“如何过滤”,而不是“如何改进”hough线条。对于第二个问题,我很不清楚你在问什么。从相机到线条的距离。。。他们去了天际线:我要解决的原始问题是编程一个机器人在两条黑线之间前进。我能够探测到这些线,但为了让机器人保持在它们之间,我必须知道摄像机和每条线之间的距离。有人能帮我吗?