基于opencv的车道线检测图片处理
时间: 2023-09-05 19:09:15 浏览: 92
以下是基于 OpenCV 的车道线检测图片处理代码例:
```python
import cv2
import numpy as np
def region_of_interest(img, vertices):
mask = np.zeros_like)
cv2.fillPoly(mask, vertices, 255)
masked_img = cv2.bitwise_and(img, mask)
return masked_img
def draw_lines(img, lines, color=(0, 255, 0), thickness=3):
for line in lines:
for x1, y1, x2, y2 in line:
cv2.line(img, (x1, y1), (x2, y2), color, thickness)
def lane_detection(img):
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray_img, 50, 150)
height, width = edges.shape
vertices = np.array([[(0, height), (width/2, height/2), (width, height)]], dtype=np.int32)
masked_edges = region_of_interest(edges, vertices)
lines = cv2.HoughLinesP(masked_edges, rho=1, theta=np.pi/180, threshold=20, minLineLength=20, maxLineGap=300)
line_img = np.zeros_like(img)
draw_lines(line_img, lines)
lane_img = cv2.addWeighted(img, 0.8, line_img, 1, 0)
return lane_img
# 读取图像文件
img = cv2.imread('path/to/image.jpg')
lane_img = lane_detection(img)
cv2.imshow('Lane Detection', lane_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
此代码与之前的视频处理代码类似,只是将视频处理的循环部分移除,直接处理一张静态图像。可以将此代码保存为 Python 文件,并将 `path/to/image.jpg` 替换为你的图像文件路径,然后运行代码来进行车道线检测。
同样需要注意,这只是一个简单的示例,实际应用中可能需要进行更多的图像处理和参数调整。
阅读全文