文章目录
2. 精通OpenCV之《色彩空间基础知识》(二)
2.1 RGB和BGR
- 日常生活中RGB色彩空间是最为常见的, 如:skimage,plt和PIL默认使用均是RGB。同时,人眼只有三种色彩的感受神经,也是基于RGB去分辨颜色的。而OpenCV默认使用的色彩空间是BGR。RGB和BGR色彩空间的区别主要在于图像在色彩空间上的排列次序不同,如下图所示:
- 图像可视化时需要注意图片的色彩空间和显示环境的色彩空间是否相同。如:图片是BGR色彩空间, 而显示环境是RBG空间, 就会出现颜色空间混乱的情形。demo:使用OpenCV进行读取图像,没有进行色彩空间转换,直接使用plt进行展示。具体code:色彩空间错乱demo展示🚀🚀
2.1.1 RGB色彩空间的局限性
- RGB 颜色空间利用R、G、B这3个颜色分量的线性组合可以表示几乎所有的其他颜色,任何颜色都与这3个分量有关,而且这3个分量是高度相关的,所以连续变换颜色时并不直观,想对图像的颜色进行调整,需要更改这3个分量才行。
- 自然环境下获取的图像容易受光照、遮挡和阴影等情况的影响,也就是对亮度比较敏感。而 RGB 颜色空间的3个分量都与亮度密切相关,即只要亮度改变,3个分量都会随之相应地改变,但是人眼对于这3种颜色分量的敏感程度是不一样的,在单色中,人眼对红色最不敏感,蓝色最敏感,所以 RGB 颜色空间是一种均匀性较差的颜色空间。
- 颜色的相似性直接用欧氏距离来度量的话,其结果与人眼视觉会有较大的偏差,对于某一种颜色,我们无法猜测出较为精确的3个分量数值进行表示,故RGB 颜色空间适合于显示,并不适用于图像处理。
2.2 HSV, HSL和YUV
2.2.1 HSV(HSB)
- OpenCV用的最多的色彩空间是HSV色彩空间,其比 RGB 更接近人们对彩色的感知经验。非常直观地表达颜色的色调、鲜艳程度和明暗程度,方便进行颜色的对比。
- Hue: 色相、色调, 即色彩,。如红色, 蓝色. 用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°
- Saturation: 饱和度、色彩纯净度。表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
- Value(Brightness): 明度。 明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。
- 圆柱体的横截面可以看做是一个极坐标系 ,H 用极坐标的极角表示,S 用极坐标的极轴长度表示,V 用圆柱中轴的高度表示,如下图所示:
- 使用HSV的理由:根据hue值判断背景颜色
2.2.2 HSL
- HSL和HSV差不多,主要的区别是在于最后一个分量不同。颜色调节URL🚀🚀
- Hue: 色相
- Saturation: 饱和度
- Lightness: 亮度。亮度区间[0,100],亮度上限为白色,亮度下限黑色;HSV 中的 V 分量为明度,明度区间[0,100],明度上限表示光谱色,明度下限表示黑色
- HSL颜色空间主要是针对提取白色物体,只由亮度L一个分量决定即可。而HSV 中的H分量中没有白色,白色是由S和V共同决定(S=0, V=100),故检测白色物体时使用 HSL 更方便和准确。
- 不管是何颜色,HSL在顶部都是纯白的
- HSV和HSL的区别:
- 举例说明:
- HSL中的S相当于稀释:10ml纯红色液体,饱和度100%,加入1L纯净水(透明),颜色就没那么红了,那么饱和度也下降了
- HSV中的S相当于混合:10ml纯红色液体,饱和度100%,加入1L白色液体,混合在一起,则颜色就没那么红了,那么饱和度也下降了
- HSL中的L控制纯色中的混入的黑白两种颜色的比例
2.2.3 YUV
- YUV,是一种颜色编码方法,是编译true-color颜色空间(color space)的种类,其中Y’UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,通常使用在各个视频处理组件中,YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。
- “Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
- Y’UV的发明是由于彩色电视与黑白电视的过渡时期。
- Y’UV最大的优点在于只需占用
极少的带宽
。看电视用极少的带宽说明电视响应快,也不会卡 - 4:4:4表示完全取样。说明,Y,U,V分别都取4份(指的是取像素),所需带宽最大
- 4:2:2表示2:1的水平取样,垂直完全采样。
- 4:2:0表示2:1的水平取样,垂直2:1采样。这个取样法目前使用最多
- 4:1:1表示4:1的水平取样,垂直完全采样。
- 更具体的YUV内容请参考另一位博客的博文:YUV色彩空间浅析
若要转载请注明出处🚀,谢谢💕💕