一. RGB和BGR
最常见的色彩空间就是RGB,人眼也是基于RGB的色彩空间去分辨颜色。
OpenCV默认使用的是BGR. BGR和RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同。
二.HSV, HSL和YUV
1.HSV(HSB)
OpenCV用的最多的色彩空间是HSV.
Hue:色相,即色彩,如红色,蓝色. 用角度度量,取值范围为0°~360°,从红色开始逆时针方向计算,红色为0°,绿色为120°,蓝色为240°
Saturation:饱和度,表示颜色接近光谱色的程度。一种颜色,可以看作是某种光谱色和白色混合的结果。其中光谱色所占比例越大,颜色接近光谱色的程度就越高,颜色的饱和度也就越高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常饱和度取值为0°~100°,值越大,颜色越饱和。
Value或Brightness:明度或亮度,表示颜色的明亮程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值与物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)
底部为黑色
使用HSV的原因:方便OpenCV做图像处理,比如根据hue的值判断背景颜色.
2.HSL
HSV和HSL在字面上意思一样:
H:指的是色相,就是颜色名称,例如红色,蓝色
S:指的是饱和度,即颜色的纯度
L:Lightness和Brightness是明度,颜色的明亮程度
在原理和表现上,HSL和HSV中的H一样,但是二者的S和L不一样:
HSB中的S控制纯色中混入白色的量,值越大,白色越少,颜色越纯。(类似加入白色液体稀释)
HSB中的B控制纯色中混入黑色的量,即颜色的纯度。
HSL中的S和黑白没有关系,饱和度不控制颜色中混入黑白的多寡。(类似于加入纯净水稀释)
HSL中的L控制纯色中的混入的黑白两种颜色。
中间为灰色,上面为白色,下面为黑色。
3.YUV
YUV:是一种颜色的编码方法,常用在各个视频处理组件中。YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的宽度。
Y:表示明亮度,也就是灰阶值。
U和V表示色度,作用是描述影响色彩及饱和度,用于指定像素的颜色。
YUV的发明是由于彩色电视与黑白电视的过渡时期。
YUV最大的优点在于只需要占用极少的宽带。
共有下列四种取样格式:
4:4:4表示完全取样(带宽最多)
4:2:2表示2:1的水平采样,垂直完全采样
4:2:0表示2:1的水平采样,垂直2:1采样(最经常采用)
4:1:1表示4:1的水平采样,垂直完全采样