OpenCV中有数百种色彩空间转换的方法。比较常用的有三种:灰度图像、BGR以及HSV(Hue,Saturation,Value)。
1.灰度图像:灰度色彩空间是通过去除彩色信息来将其转换成灰阶,灰度色彩空间对中间处理特别有效,比如人脸检测。
2.BGR:即蓝-绿-红色彩空间,每一个像素点都由一个三元数组来表示,分别代表蓝、绿、红三种颜色。另一个与之相似的颜色空间:RGB,它们只是在颜色的顺序上不同。
3.HSV:H(Hue)是色调,S(Saturation)是饱和度,V(Value)表示黑暗的程度(或光谱的另一端的明亮程度)
4.YUV:“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
下面看一段代码来解释一些图片色彩空间
import cv2
#引入opencv库才能使用
#图片空间色彩转换
def color_space_demo(image):
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) #灰度图
cv2.imshow("gray",gray)
hsv=cv2.cvtColor(image,cv2.COLOR_BGR2HSV) #HSV
cv2.imshow("hsv",hsv)
yuv=cv2.cvtColor(image,cv2.COLOR_BGR2YUV) #YUV
cv2.imshow("yuv", yuv)
ycrcb = cv2.cvtColor(image, cv2.COLOR_BGR2YCrCb) #YCrCb
cv2.imshow("ycrcb", ycrcb)
print("-------Hello Python--------")
src=cv2.imread("jjlin.jpg")#读取照片
cv2.imshow("changed_src",src)#显示原图片
color_space_demo(src)
cv2.waitKey(0)
cv2.destroyAllWindows()
(1)原图
(2)HSV
(3)Gray灰度图
(4)YUV
(5)YCrCb