import cv2 import numpy as np cap = cv2.VideoCapture('honglvdeng.mp4') # 读取视频 fps = cap.get(cv2.CAP_PROP_FPS) # 获取帧率 while cap.isOpened(): ret, frame = cap.read() # 调整窗口大小 cv2.namedWindow("frame", 0) # 0可调大小,注意:窗口名必须imshow里面的一窗口名一致 cv2.resizeWindow("frame", 960, 540) # 设置长和宽 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 将视频以灰度图展示 cv2.putText(gray, 'fps: ' + str(fps), (0, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2) # 在展示窗口中显示帧率 # 划定三个感兴趣区域分别为R, Y, G # ROI划定规则:图像矩阵名称[上 : 下, 左 : 右] R = gray[452:454, 594:596] Y = gray[446:448, 630:632] G = gray[444:446, 672:674] # 为划定的感兴趣区域赋予变量 sum_R = np.sum(R) sum_Y = np.sum(Y) sum_G = np.sum(G) # 判断模块 if sum_R > 200: # 如果R中那四个像素点的灰度值之和大于200,则显示红灯 cv2.putText(frame, 'Red', (580, 400), 2, 2, (0, 0, 255), 3) cv2.putText(frame, &
选取区域识别红绿灯信号
最新推荐文章于 2023-05-30 15:07:45 发布
这段代码通过读取视频并使用OpenCV进行处理,识别红绿灯的颜色状态。通过将帧转换为灰度图,然后划定三个感兴趣区域分别对应红、黄、绿灯,根据像素点的灰度值总和判断灯的颜色,并在屏幕上显示相应的文字提示。
摘要由CSDN通过智能技术生成