1. 学习目标
-
了解相关颜色空间的基础知识
-
理解彩色空间互转的理论
-
掌握OpenCV框架下颜色空间互转API的使用
2. RGB与灰度图互转
img1= cv2.imread('./src/cat.jpg')
img2 = cv2.imread('./src/cat.jpg',0) #灰度图通过参数0实现
cv2.imshow('image1',img1)
cv2.imshow('image2',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
3. RGB与HSV互转
HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightness)。色相是色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等。饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。明度(V),取0-max(计算机中HSV取值范围和存储的长度有关)。HSV颜色空间可以用一个圆锥空间模型来描述。圆锥的顶点处,V=0,H和S无定义,代表黑色。圆锥的顶面中心处V=max,S=0,H无定义,代表白色。
RGB颜色空间中,三种颜色分量的取值与所生成的颜色之间的联系并不直观。而HSV颜色空间,更类似于人类感觉颜色的方式,封装了关于颜色的信息:“这是什么颜色?深浅如何?明暗如何?
HSV模型
这个模型就是按色彩、深浅、明暗来描述的。
H是色彩;
S是深浅, S = 0时,只有灰度;
V是明暗,表示色彩的明亮程度,但与光强无直接联系。
应用:可以用于偏光矫正、去除阴影、图像分割等
cv2.imshow('original image',img1)
HSV_img = cv2.cvtColor(img1,cv2.COLOR_BGR2HSV)
cv2.imshow('HSV',HSV_img)
cv2.waitKey(0)
cv2.destroyAllWindows()