6_opencv重点 -- 色彩空间
# 一.色彩空间
RGB:人眼的色彩空间
OpenCv默认的是BGR
HSV即:
Hue:色相,即色彩,如红色,蓝色
Saturation: 饱和度,颜色的纯度
Value:明度
HSL即:
Hue:色相,即色彩,如红色,蓝色
Saturation: 饱和度,颜色的纯度
Lightness:亮度
两者图示:

YUV主要作用于视频,HSV主要用在opencv中,RGB,BGR主要用在显示器硬件中。
# 二.色彩空间的转换
cvt_img = cv.cvtColor(src,code)
scr是原始输入图像,code是色彩空间转换码,
关于转换码的参数可在此文档查询:
色彩空间转换码
# 三.示例代码:
import cv2 as cv
def callback():
pass
cv.namedWindow('color',cv.WINDOW_NORMAL)
img = cv.imread('./img/img.png')
# 设置转换空间选项,如下有五种可选择转换的方式
colorspaces = [cv.COLOR_BGR2RGBA, cv.COLOR_BGR2BGRA,
cv.COLOR_BGR2GRAY, cv.COLOR_BGR2HSV_FULL,cv.COLOR_BGR2YUV]
cv.createTrackbar('curColor','color',0,4,callback)
while True:
index = cv.getTrackbarPos('curColor','color')
# 颜色空间转换API
cvt_img = cv.cvtColor(img,colorspaces[index])
cv.imshow('color',cvt_img)
key = cv.waitKey(1)
if key & 0xFF == ord('q'):
break
cv.destroyAllWindows()