python运用识别红绿灯颜色代码

# 导库
import cv2
import numpy as np
import glob
# 图片批量处理,并读取
for files in glob.glob(r'D:\pycharm\*.jpg'):img = cv2.imread(files)# 读取图片:注意imread读的图是RGB格式的# 显示原图cv2.imshow("红绿灯", img)#显示ROI区域:这个区域是在原图中截取的ROI = img[400:500, 560:720]cv2.namedWindow("ROI", 0)cv2.resizeWindow("ROI", 400, 300)cv2.imshow("ROI", ROI)# 等待显示cv2.waitKey(0)cv2.destroyAllWindows()# 把截取的图片另存cv2.imwrite('D:\pycharm\save_test.jpg', ROI)hsv = cv2.cvtColor(ROI, cv2.COLOR_BGR2HSV)# 红色hsv颜色分量范围lb_hsv_red = np.array([125, 49, 138])up_hsv_red = np.array([180, 255, 255])mask_red = cv2.inRange(hsv, lowerb=lb_hsv_red, upperb=up_hsv_red)# 中值滤波,去除噪点red_blur = cv2.medianBlur(mask_red, 7)#取最大值255r_color = np.max(red_blur)# 绿色hsv颜色分量范围lb_hsv_g = np.array([49, 79, 137])up_hsv_g = np.array([90, 255, 255])mask_g = cv2.inRange(hsv, lowerb=lb_hsv_g, upperb=up_hsv_g)# 中值滤波,去除噪点g_blur = cv2.medianBlur(mask_g, 7)#取最大值255g_color = np.max(g_blur)# 黄色hsv颜色分量范围lb_hsv_y = np.array([11, 67, 127])up_hsv_y = np.array([34, 255, 255])mask_y = cv2.inRange(hsv, lowerb=lb_hsv_y, upperb=up_hsv_y)# 中值滤波,去除噪点y_blur = cv2.medianBlur(mask_y, 7)#取最大值255y_color = np.max(y_blur)# 判断if r_color == 255:print('红灯亮')# 因为图像是二值的图像,所以如果图像出现白点,也就是255,也就是红色elif g_color == 255:print('绿灯亮')# 因为图像是二值的图像,所以如果图像出现白点,也就是255,也就是绿色elif y_color == 255:print('黄灯亮')# 因为图像是二值的图像,所以如果图像出现白点,也就是255,也就是黄色else:print('都不是')#调整显示窗口大小cv2.namedWindow("red_hsv", 0)cv2.resizeWindow("red_hsv", 400, 300)cv2.namedWindow("green_hsv", 0)cv2.resizeWindow("green_hsv", 400, 300)cv2.namedWindow("yellow_hsv", 0)cv2.resizeWindow("yellow_hsv", 400, 300)# 显示cv2.imshow("red_hsv", mask_red)cv2.imshow("green_hsv", mask_g)cv2.imshow("yellow_hsv", mask_y)cv2.waitKey(0)cv2.destroyAllWindows()
对图片进行识别的流程图下方是识别的图片
gg

 

kk

pp

 X替

save_test

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部