程序示例精选
Python OpenCV车道线识别侦测
如需安装运行环境或远程调试,可点击 博主头像进入个人主页查看博主联系方式,由专业技术人员远程协助!
前言
这篇博客针对《Python OpenCV车道线识别侦测》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。运行结果
文章目录
一、所需工具软件二、使用步骤
1. 主要代码
2. 运行结果
三、在线协助
一、所需工具软件
1. Pycharm2. Python
二、使用步骤
代码如下(示例):
import cv2 as cv
import numpy as np
def do_canny(frame):
gray = cv.cvtColor(frame, cv.COLOR_RGB2GRAY)
blur = cv.GaussianBlur(gray, (5, 5), 0)
canny = cv.Canny(blur, 50, 150)
return canny
def do_segment(frame):
height = frame.shape[0]
polygons = np.array([
[(0, height), (800, height), (380, 290)]
])
mask = np.zeros_like(frame)
cv.fillPoly(mask, polygons, 255)
segment = cv.bitwise_and(frame, mask)
return segment
def calculate_lines(frame, lines):
left = []
right = []
for line in lines:
x1, y1, x2, y2 = line.reshape(4)
slope = parameters[0]
y_intercept = parameters[1]
if slope < 0:
left.append((slope, y_intercept))
else:
right.append((slope, y_intercept))
left_avg = np.average(left, axis = 0)
right_avg = np.average(right, axis = 0)
left_line = calculate_coordinates(frame, left_avg)
right_line = calculate_coordinates(frame, right_avg)
return np.array([left_line, right_line])
def calculate_coordinates(frame, parameters):
slope, intercept = parameters
y1 = frame.shape[0]
y2 = int(y1 - 150)
return np.array([x1, y1, x2, y2])
cap = cv.VideoCapture("input.mp4")
while (cap.isOpened()):
ret, frame = cap.read()
canny = do_canny(frame)
cv.imshow("canny", canny)
segment = do_segment(canny)
hough = cv.HoughLinesP(segment, 2, np.pi / 180, 100, np.array([]), minLineLength = 100, maxLineGap = 50)
lines = calculate_lines(frame, hough)
lines_visualize = visualize_lines(frame, lines)
cv.imshow("hough", lines_visualize)
output = cv.addWeighted(frame, 0.9, lines_visualize, 1, 1)
cv.imshow("output", output)
if cv.waitKey(10) & 0xFF == ord('q'):
break
cap.release()
cv.destroyAllWindows()
运行结果
三、在线协助:
如需安装运行环境或远程调试,可点击博主头像,进入个人主页查看博主联系方式,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
博主个人主页:https://developer.aliyun.com/profile/expert/rfnzgp3sk3ahc
博主所有文章点这里:https://developer.aliyun.com/profile/expert/rfnzgp3sk3ahc
博主联系方式点这里:https://developer.aliyun.com/profile/expert/rfnzgp3sk3ahc