使用开放cv和Python进行车道检测:如何改进HoughLines检测?
我必须使用Python和OpenCV执行车道检测。 我的代码是:使用开放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.
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线条。对于第二个问题,我很不清楚你在问什么。从相机到线条的距离。。。他们去了天际线:我要解决的原始问题是编程一个机器人在两条黑线之间前进。我能够探测到这些线,但为了让机器人保持在它们之间,我必须知道摄像机和每条线之间的距离。有人能帮我吗?