如何识别车牌颜色?

时间:2021-06-30 06:10:37

标签: python opencv

首先你应该使用这个命令来安装hyperlpr:

pip install hyperlpr

然后我用这个代码来识别车牌号。

from hyperlpr import *
import cv2 #opencv3.X version
import numpy as np
from math import sqrt

#BGR
COLORS = [
    (230, 131, 1),  # blue
    (112, 249, 90),  # green
    (5, 189, 252),  # yellow
    (72, 61, 60),  # black
    (251, 253, 252) # white
]

def closest_color(rgb):
    r, g, b = rgb
    color_diffs = []
    for color in COLORS:
        cr, cg, cb = color
        color_diff = sqrt(abs(r - cr)**2 + abs(g - cg)**2 + abs(b - cb)**2)
        color_diffs.append((color_diff, color))
    return min(color_diffs)[1]

image_list = [r"9.jpg","11.jpg"]

for name in image_list:
    image = cv2.imread(name)
    result_green = HyperLPR_plate_recognition(image)
    if result_green:
        number = result_green[0][0]
        confidence = result_green[0][1]
        left,top,right,bottom = result_green[0][2]
        rec = image[top:bottom,left:right]
        cv2.imshow(name,rec)
        cv2.waitKey(0)
        blue_mean = np.mean(image[:,:,0])#blue_mean
        green_mean = np.mean(image[:,:,1])#green_mean
        red_mean = np.mean(image[:,:,2])#red_mean
        print(blue_mean,green_mean,red_mean)
        index = COLORS.index(closest_color((red_mean, green_mean, blue_mean)))
        print(index)#black

无论是绿色车牌还是黄色车牌,使用np.mean后的结果都是黑色,那么如何识别车牌颜色?

enter image description here enter image description here

0 个答案:

没有答案