Summarizing The Problem
Using Python and cv2, I am in pursuit of reading “image.jpg” in, and identifying the road, setting the road to a color, and everything else to black. I would export it to an output jpg file.
My Next Attempts:
I will look deeper into gaussian blurs, luminance, and thresholds.
What I have Tried:
This simply just converts the image to greyscale, does canny edge detection, and draws lines over the solution of which are long enough. I would prefer my solution fills a color based off where the road is, without lines.
import cv2 # read image img = cv2.imread("image.jpg") # convert image to grayscale gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # apply Canny edge detection edges = cv2.Canny(gray, 50, 150) # apply HoughLinesP to detect lines in the image lines = cv2.HoughLinesP(edges, 1, 3.1415/180, 50, minLineLength=200, maxLineGap=10) # 50 # iterate over the lines and draw them on the image for line in lines: x1, y1, x2, y2 = line cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2) # save the output image cv2.imwrite("output.jpg", img)
Let me know if you know how to make it possible to color the road a specific color, and everything else another color. Thanks!