对红绿灯进行简单识别 Python opencv
时间: 2024-06-12 10:07:33 浏览: 96
python红绿灯检测opencv识别红绿灯信号灯检测
5星 · 资源好评率100%
首先,需要安装OpenCV库。可以在Python中使用以下命令安装:
pip install opencv-python
然后,使用以下代码对一张图片中的红绿灯进行简单识别:
import cv2
# 加载图片
img = cv2.imread('traffic_light.jpg')
# 将图片转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行高斯模糊以去除噪点
blur = cv2.GaussianBlur(gray, (9, 9), 0)
# 使用Canny算法进行边缘检测
canny = cv2.Canny(blur, 50, 150)
# 在边缘检测图像中寻找轮廓
contours, _ = cv2.findContours(canny, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 对轮廓进行遍历,找到面积最大的轮廓
max_area = 0
max_contour = None
for contour in contours:
area = cv2.contourArea(contour)
if area > max_area:
max_area = area
max_contour = contour
# 如果找到了面积最大的轮廓
if max_contour is not None:
# 获取轮廓的外接矩形
x, y, w, h = cv2.boundingRect(max_contour)
# 根据矩形的长宽比判断是否为红绿灯
if w / h > 1.5:
print('Traffic light is green!')
else:
print('Traffic light is red!')
# 显示原始图片和处理后的图片
cv2.imshow('Original', img)
cv2.imshow('Processed', canny)
cv2.waitKey(0)
cv2.destroyAllWindows()
注意,此代码仅适用于简单的红绿灯识别,实际应用中需要根据具体情况进行调整和优化。
阅读全文