OpenCV 第4课 图像处理—颜色空间
1. 颜色空间介绍
我们所看到的图像信息,其实每一帧都是由B、G、R三个颜色分量所构成的像素点排列而成。
颜色模型也被称为颜色空间,是用一组数值来描述颜色的数学模型。
RGB图像是一种比较常见的颜色空间类型,除此以外,还有一些其他的颜色空间,比较常见的包括GRAY颜色空间(灰度图像)、Lab颜色空间、XYZ颜色空间、YCrCb 颜色空间、HSV颜色空间、HLS颜色空间、CIEL*a*b*颜色空间、CIEL*u*v*颜色空间、Bayer 颜色空间等。
每个颜色空间都有自己擅长的处理问题的领域,因此,为了更方便地处理某个具体问题,就要用到颜色空间类型转换。
颜色空间类型转换是指,将图像从一个颜色空间转换到另外一个颜色空间。例如,在使用OpenCV处理图像时,可能会在RGB颜色空间和Lab颜色空间之间进行转换。在进行图像的特征提取、距离计算时,往往先将图像从RGB颜色空间处理为灰度颜色空间。在一些应用中,可能需要将颜色空间的图像转换为二值图像。
下面将列举介绍几种常见的空间。
2.常用颜色空间类型学习
2.1 RGB颜色空间
RGB颜色空间具有以下属性:
- 它是一种加色空间,其中颜色通过红色R,绿色G和蓝色B的线性组合获得。
- 物体光照会影响该颜色空间各个通道值,三个颜色通道是具有相关性的。让我们将上面图像分成R,G和B分量并观察它们以更深入地了解颜色空间。
从下图可以看到如果你看蓝色通道,可以看到在室内光照条件下第二张图像中的魔方蓝色和白色部分看起来相似,但第一张图像有明显差异。这种不均匀性使得在该颜色空间中基于颜色的分割非常困难。此外,两个图像的值之间存在总体差异。因此RGB颜色空间存在颜色值分布不均匀以及色度和亮度混合在一起的问题。
2.2 Lab颜色空间
类似RGB空间,Lab也有三个图像通道。
- L:亮度通道,表亮度。
- a:颜色通道a,表示从绿色到洋红色的颜色。
- b:颜色通道b,表示从蓝色到黄色的颜色。
Lab颜色空间与RGB颜色空间完全不同。在RGB颜色空间中,颜色信息被分成三个通道,
但是相同的三个通道也包含亮度信息。另一方面,在Lab颜色空间中,L通道独立于颜色信息并仅只含亮度信息。另外两个通道编码颜色。
L分量:表示像素的亮度。L值越大,亮度越高。
a分量:表示从红色到绿色的范围。
b分量:表示从黄色到蓝色的范围。
在OpenCV里,RGB颜色空间中R、G、B的数值范围均为[0-255]。在Lab颜色空间中的L数值范围是[0-100],L为0时代表黑色,为100时代表白色。a和b的数值范围是[-128,127],a和b为0时都代表灰色。
为了进一步帮助大家了解RGB和Lab的对照关系,这里以PS软件为例进行说明:
1)在PS 软件中使用“吸管工具”,选择需要吸取的颜色;
2)点击左下方“拾色器”,可以看到Lab 与RGB 的对应关系如下图所示:
Lab颜色空间还具有以下特性: 1.感知上均匀的颜色空间近似于我们如何感知颜色。2.独立于设备(捕获或显示)。3.广泛用于Adobe Photoshop。4.通过复数变换方程与RGB颜色空间相关。OpenCV中读取图像,转换为Lab空间图像结果如下图所示:
2.3 Ycrcb颜色空间
YCbCr通常会用于影片中的影像连续处理,或是数字摄影系统中。Y为颜色的亮度(luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成分。
人眼视觉系统(HVS,Human Visual System)对颜色的敏感度要低于对亮度的敏感度。在传统的RGB 颜色空间内,RGB 三原色具有相同的重要性,但是忽略了亮度信息。
在YCrCb颜色空间中,Y代表光源的亮度,色度信息保存在Cr和Cb中,其中,Cr表示红色分量信息,Cb表示蓝色分量信息。亮度给出了颜色亮或暗的程度信息,该信息可以通过照明中强度成分的加权和来计算。在RGB光源中,绿色分量的影响最大,蓝色分量的影响最小。
对于照度变化,可以针对强度和颜色分量对LAB进行类似的观察。与LAB相比,室外图像中红色和橙色之间的感知差异较小,白色在所有3个组件中发生了变化。
2.4 HSV颜色空间
HSV颜色空间是一种面向视觉感知的颜色模型,具有以下三个成分:
H色调,S饱和度,V明度。
色调:色调与混合光谱中的主要光波长相关,例如“赤橙黄绿青蓝紫”分别表示不同的色调。如果从波长的角度考虑,不同波长的光表现为不同的颜色,实际上它们体现的是色调的差异。
饱和度:指相对纯净度,或一种颜色混合白光的数量。纯谱色是全饱和的,像深红色(红加白)和淡紫色(紫加白)这样的彩色是欠饱和的,饱和度与所加白光的数量成反比。
亮度:反映的是人眼感受到的光的明暗程度,该指标与物体的反射度有关。对于颜色来讲,如果在其中掺入的白色越多,则其亮度越高;如果在其中掺入的黑色越多,则其亮度越低。
HSV最大的特点是它只使用一个通道来描述颜色(H),这使得指定颜色变得非常直观。但是HSV颜色取决于设备。
从下图可以看到
H分量在两个图像中非常相似,这表明即使在光照变化下颜色信息也是完整的。
两个图像中的S分量也非常相似,V分量表示亮度,因此它会因照明变化而发生变化。
红色室外和室内图像的值之间存在巨大差异。这是因为H值是以角度表示红色表示起始角度。因此它可能会取角度[300,360]和[0,60]之间的值。
2.5 Gray颜色空间
GRAY颜色空间通常指的是灰度图像,灰度图像是一种每个像素都是从黑到白,被处理为256个灰度级别的单色图像。
这256个灰度级别分别用区间[0,255]中的数值表示,其中,“0”表示纯黑色,“255”表示白色,0~255之间的数值表示不同的亮度(即颜色的深浅程度)的深灰色或者浅灰色。
