1
$\begingroup$

This is my code to detect the lane boundaries. But only one line(left most) is detected here. Is there a way to remove other objects from the picture (remove bushes and trees) and detect only the straight line?

import cv2
import numpy as np

img = cv2.imread('lane.jpeg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)

lines = cv2.HoughLines(edges,1,np.pi/180,200)
for rho,theta in lines[0]:
 a = np.cos(theta)
 b = np.sin(theta)
 x0 = a*rho
 y0 = b*rho
 x1 = int(x0 + 1000*(-b))
 y1 = int(y0 + 1000*(a))
 x2 = int(x0 - 1000*(-b))
 y2 = int(y0 - 1000*(a))

 cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2)

#cv2.imwrite('20.jpg',img)
cv2.imshow('hough.jpg',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

enter image description here

$\endgroup$

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.