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)
    #取最大值255
    r_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)
    #取最大值255
    g_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)
    #取最大值255
    y_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

 

python运用识别红绿灯颜色代码_第1张图片

kk

python运用识别红绿灯颜色代码_第2张图片

pp

 python运用识别红绿灯颜色代码_第3张图片X替

save_test

 

你可能感兴趣的:(opencv,python,计算机视觉)