HSV 色彩空间 是由Alvy Ray Smith(美国计算机科学家)于1978年所创,由 色调 H (Hue)、 饱和度 S (Saturation)和 明度 V (Value)组成。基本概念是使用圆柱坐标描述颜色,相当于颜色就是圆柱坐标上的一个点。
上图取材自网站:https://psychology.wikia.org/wiki/HSV_color_space?file=HueScale.svg。
绕着这个 圆柱的角度 就是 色调 (H) , 轴的距离 是 饱和度 (S) , 高度 则是 明度 (V) 。因为黑色点在圆心下面,白色点在圆心上面,所以又可以使用倒圆锥体表示这个HSV色彩空间,如下图所示。
上图取材自网站:https://psychology.wikia.org/wiki/HSV_color_space?file=HueScale.svg。
我们也可以使用环圈轮方式表达HSV色彩空间,如下图所示。
上图取材自网站:https://psychology.wikia.org/wiki/HSV_color_space?file=HueScale.svg。
色调
H(Hue)
:指色彩的基本属性,也就是日常生活所说的红色、黄色、绿色、蓝色等。此值的范围是0~360,如下图所示,不过OpenCV依公式处理成0~180。
上图取材自网站:https://psychology.wikia.org/wiki/HSV_color_space?file=HueScale.svg。
饱和度
S(Saturation)
:指色彩的纯度,数值越高则色彩纯度越高,数值越低则逐渐变灰。此值范围是0~100%,不过OpenCV依公式处理成0~255。下图左边是原图像,右边色彩饱和度是0%的图像。
明度
V(Value)
:其实就是颜色的亮度,此值范围是0~100%,不过OpenCV依公式处理成0~255,当明度是0时图像呈现黑色。
有关色彩转换公式可以参考4-1节的cv2.cvtColor( )函数,如下所示,与转换有关的具名参数也可以参考该节。
image = cv2.cvtColor(src, code)
程序实例 ch4_6.py: 将图像由BGR色彩空间转换为HSV色彩空间,然后分别显示原图像与HSV色彩空间图像。
执行结果 下图右边是HSV色彩空间图像。
假设MAX是(R, G, B)的最大值,MIN是(R, G, B)的最小值,则RGB转换成HSV的公式如下:
上述公式仅供参考,对一般读者而言,建议直接使用cv2.cvtColor( )函数转换。