与cv2中一致的转换
def bgrToHSV(cls, color):
b, g, r = color[0], color[1], color[2]
cMax = max(b, g, r)
cMin = min(b, g, r)
delta = cMax - cMin
# 亮度值就等于 max(b, g, r)
Value = cMax
# 饱和度
if Value != 0:
Saturation = delta / Value
Saturation = int(Saturation * 255)
else:
Saturation = 0
# 色相
if cMax == r: # 最大值 == 红色
Hue = 0 + 60 * (g - b) / delta
elif cMax == g: # 最大值 == 绿色
Hue = 120 + 60 * (b - r) / delta
else: # 最大值 == 蓝色
Hue = 240 + 60 * (r - g) / delta
if Hue < 0:
Hue = Hue + 360
Hue = int(Hue / 2)
return [Hue, Saturation, Value]
hsv颜色空间:
注:此图引用百度百科图
色相值理解笔记:
1.最大颜色分值决定颜色空间范围
2.其它两个分量按hsv颜色空间形成的360度分量逆时针相减