You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于HyperLPR实现车牌颜色识别 解决np.mean计算返回黑色问题

问题根因

你的代码存在3个核心错误,导致颜色识别全部匹配到黑色:

  • 均值计算对象错误:你当前计算的是整张输入图像的通道均值,不是HyperLPR返回的车牌裁剪区域rec的均值,整图包含大量无关背景,数值普遍偏暗自然会匹配到黑色。
  • 颜色通道顺序不匹配:你预设的COLORS是BGR格式,但调用closest_color时传入的是(红、绿、蓝)的RGB顺序,和COLORS的顺序完全相反,匹配逻辑直接错位。
  • 预设标准颜色值偏差较大:你写的COLORS数值和国内标准蓝、绿、黄车牌的实际BGR值偏差较大,也会提升误判概率。

修正后代码

首先执行安装命令:
pip install hyperlpr

修正后的识别代码如下:

from hyperlpr import *
import cv2 
import numpy as np
from math import sqrt

# 调整为国内标准车牌对应的BGR颜色值
COLORS = [
    (255, 0, 0),     # 蓝色车牌
    (0, 255, 0),     # 绿色车牌
    (0, 255, 255),   # 黄色车牌
    (0, 0, 0),       # 黑色车牌
    (255, 255, 255)  # 白色车牌
]
# 颜色对应名称,方便输出
COLOR_NAMES = ["蓝色", "绿色", "黄色", "黑色", "白色"]

def closest_color(bgr):
    b, g, r = bgr
    color_diffs = []
    for color in COLORS:
        cb, cg, cr = color
        color_diff = sqrt(abs(b - cb)**2 + abs(g - cg)**2 + abs(r - cr)**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)
        # 计算车牌区域的BGR通道均值,不是整图的!
        b_mean = np.mean(rec[:,:,0])
        g_mean = np.mean(rec[:,:,1])
        r_mean = np.mean(rec[:,:,2])
        print(f"车牌区域通道均值:B={b_mean:.2f}, G={g_mean:.2f}, R={r_mean:.2f}")
        # 传入BGR顺序的均值,和COLORS对应
        index = COLORS.index(closest_color((b_mean, g_mean, r_mean)))
        print(f"车牌颜色:{COLOR_NAMES[index]},车牌号:{number},置信度:{confidence:.2f}")

优化建议

如果想要进一步提升光照变化下的识别准确率,可以把BGR格式转成HSV颜色空间做颜色匹配,HSV对亮度变化的鲁棒性远高于BGR,能大幅降低环境光带来的误判。

内容的提问来源于stack exchange,提问作者CR7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 15:54:07