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

如何判断像素的HSV值是否在指定颜色的上下阈值范围内?

实现HSV像素值区间判断的两种方案

方法1:直接对比HSV值与上下阈值

你定义的low_blue和high_blue都是numpy数组,可以直接用逐元素逻辑判断,三个通道同时满足区间要求即为匹配:

import numpy as np

# 目标HSV像素值
target_hsv = np.array([50, 77, 174])
# 逐通道判断是否在区间内,所有通道都满足则返回True
is_blue = np.all((target_hsv >= low_blue) & (target_hsv <= high_blue))

if is_blue:
    print("blue")

你提供的示例目标HSV值中,H通道为50、S通道为77,均低于蓝色下限的80,所以此处判断结果为False,不会输出blue。

方法2:复用已生成的掩码直接查询

你已经通过cv2.inRange生成了全图的蓝色掩码blue_mask,掩码中数值为255的位置代表对应像素落在蓝色区间,0代表不匹配,直接读取对应坐标的掩码值即可。
注意:OpenCV中图像数组的维度顺序是(高度, 宽度, 通道数),对应坐标取值时要先写y再写x:

# 你的坐标为x=696、y=260,取值时顺序为[y, x]
if blue_mask[260, 696] != 0:
    print("blue")

这个方法适合判断原图中特定坐标点颜色的场景,不需要单独再做一次阈值判断,复用已有结果效率更高。

内容的提问来源于stack exchange,提问作者A.Murtazin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 07:06:02