在python中快速识别一张图片的颜色~~(以红色为例)

在图片处理,OCR的某些场景,我们经常需要让程序识别其颜色,以下是一个简单且快速的例子:

# Check image is Red or not
def IsRed(image):

    # 读取图片并转为 HSV 数组,并识别其字体颜色(以确定+/-)
    image2 = image.convert("HSV")
    hsv_array = np.array(image2)

    h = hsv_array[:, :, 0].astype(np.uint16)
    s = hsv_array[:, :, 1].astype(np.uint16)
    v = hsv_array[:, :, 2].astype(np.uint16)

    # 定义红色和绿色的色相范围(调整阈值可优化识别)
    red_mask = ((h >= 0) & (h <= 30)) | ((h >= 330) & (h <= 360))
    green_mask = (h >= 75) & (h <= 150)

    # 排除低饱和度和低亮度的像素(减少背景干扰)
    valid_mask = (s >= 50) & (v >= 50)

    # 统计有效像素中的红色和绿色数量
    red_count = np.sum(red_mask & valid_mask)
    green_count = np.sum(green_mask & valid_mask)

    if red_count > green_count:
        return 1
    else:
        return 0
    #endif

#end def

本代码仅以红色示例,其他颜色请自行扩充 :(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

happybasic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值