判断二维码颜色

 

判断所给二维码图片是红色还是黑色

实际操作过程中发现红色的HSV阈值范围会将黑色也鉴定为红色,所以只识别[0,0,0]的黑色,可能不太稳妥

import cv2
import numpy as np

# 读取图像并将其转换为HSV颜色空间
img = cv2.imread("D://black.png")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 定义红色的HSV阈值范围
lower_red = np.array([0, 255, 0])
upper_red = np.array([10, 255, 10])
stand_black = np.array([0, 0, 0])
# 提取图像中间一行的像素
h, w, _ = img.shape
mid_row = hsv[int(h/2), :, :]

# 初始化像素计数器
red_pixels = 0

# 遍历图像中间一行的像素
for pixel in mid_row:
    h_value = pixel[0]
    if h_value == stand_black[0]:
    # if h_value >= lower_red[0] and h_value <= upper_red[0]:
        red_pixels -= 1

# 判断二维码的颜色
if red_pixels > 0:
    print("This QR code is red.")
else:
    print("This QR code is black.")