HSV色彩空间使用色调(Hue,也称色相)、饱和度(Saturation)和亮度(Value)表示图像。
色调H表示颜色,用角度表示,取值范围为[0°,360°],从红色开始按逆时针方向计算。例如,红色为0°、黄色为60°、绿色为120°、青色为180°、蓝色为240°、紫色为300°等。
饱和度S表示颜色接近光谱色的程度,或者表示光谱色中混入白光的比例。光谱色中白光的比例越低,饱和度越高,颜色越深、艳。光谱色中白光比例为0时,饱和度达到最高。饱和度的取值范围为[0,1]。
亮度V表示颜色明亮的程度,是人眼可感受到的明暗程度,其取值范围为[0,1]。
从RGB色彩空间转换为HSV色彩空间的计算公式如下。
在cv2.cvtColor()函数中使用cv2.COLOR_BGR2HSV转换码可将图像从BGR色彩空间转换为HSV色彩空间,示例代码如下。
test4-4.py:将BGR色彩空间转换为HSV色彩空间
import cv2
img=cv2.imread('bee.jpg') #读取图像
cv2.imshow('BGR',img) #显示图像
img2=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) #转换色彩空间为HSV
cv2.imshow('HSV',img2) #显示图像
cv2.waitKey(0)
计算结果中如果H<0,则令H=H+360。