比较常见的色彩空间包括 GRAY 色彩空间、XYZ 色彩空间、 YCrCb 色彩空间、HSV色彩空间、HLS 色彩空间、CIELab 色彩空间、 CIELuv* 色彩空间、 Bayer 色彩空间等,下面将依次介绍
4.1.1 GRAY 色彩空间
GRAY(灰度图像)通常指8 位灰度图,其具有 256 个灰度级,像素值的范围是[0,255] 当图像由 RGB 色彩空间转换为 GRAY 色彩空间时,其处理方式如下
Gray=0.299 * R+0.587 * G+ 0.114 * B
上述是标准的转换方式,也是 Opencv 中使用的转换方式,有时,也可以采用简化形式完成转换
Gray =
当图像由 GRAY 色彩空间转换为 RGB 色彩空间时,最终所有通道的值都将是相同的, 其处理方式如下
R = Gray
G = Gray
B = Gray
4.1.2 XYZ 色彩空间
XYZ 色彩空间是由 CIE( International Commission on Illumination)定义的,是一种便于计算的色彩空间,它可以与 RGB 色彩空间相互转换。
将 RGB 色彩空间转换为 XYZ 色彩空间,其转换形式为:
= *
将 XYZ 色彩空间转换为 RGB 色彩空间,其转换形式为
= *
4.1.3 YCrCb 色彩空间
人眼视觉系统(HVS, Human Visual System)对颜色的敏感度要低于对亮度的敏感度,在传统的 RGB 色彩空间内,RGB 三原色具有相同的重要性,但是忽略了亮度信息
在 YCrCb 色彩空间中,Y 代表光源的亮度,色度信息保存在 Cr和 Cb中,其中,Cr表示红色分量信息,Cb 表示蓝色分量信息
亮度给出了颜色亮或暗的程度信息,该信息可以通过照明中强度成分的加权和来计算,在RGB 光源中,绿色分量的影响最大,蓝色分量的影响最小。
从 RGB 色彩空间到 YCrCb 色彩空间的转换公式为:
Y=0.299 * R+0.587 * G+ 0.114 * B
Cr = (R- Y) * 0.713 + delta
Cb = (B -Y) * 0.564 + delta
式中 delta 的值为
从 YCrCb 色彩空间到 RGB 色彩空间的转换公式为
R=Y+1.403*(Cr-delta)
G=Y-0.714(Cr-delta)-0.344(Cb-deita)
B=Y+1.773*(Cb- delta)
式中,delta 的值与上面公式中的 delta 相同.
4.1.4 HSV 色彩空间
RGB 是从硬件的角度提出的颜色模型,在与人眼匹配的过程中可能存在一定的差异 ,HSV色彩空间是一种面向视觉感知的颜色模型。HSV 色彩空间从心理学和视觉的角度出发,指出人眼的色彩知觉主要包含三要素:色调(Hue,也称为色相)、饱和度(Saturation)、亮度( value ) 色调指光的颜色,饱和度是指色彩的深浅程度,亮度指人眼感受到的光的明暗程度.
1.色调:色调与混合光谱中的主要光波长相关,例如“赤橙黄绿青蓝紫”分别表示不同的色调。如果从波长的角度考虑,不同波长的光表现为不同的颜色,实际上它们体现的是色调的差异
2.饱和度:指相对纯净度,或一种颜色混合白光的数量。纯谱色是全饱和的,像深红色(红加白)和淡紫色(紫加白)这样的彩色是欠饱和的,饱和度与所加白光的数量成反比。
3.亮度:反映的是人眼感受到的光的明暗程度,该指标与物体的反射度有关。对于色彩来讲,如果在其中掺入的白色越多,则其亮度越高;如果在其中掺入的黑色越多,则其亮度越低.
在具体实现上,我们将物理空间的颜色分布在圆周上,不同的角度代表不同的颜色,因此,通过调整色调值就能选取不同的颜色,色调的取值区间为[0,360],色调取不同值时,所代表的颜色如表 4-1 所示,两个角度之间的角度对应两个颜色之间的过渡色
序号 | 色调值 | 颜色 |
---|---|---|
1 | 0 | 红色 |
2 | 60 | 黄色 |
3 | 120 | 绿色 |
4 | 180 | 青色 |
5 | 240 | 蓝色 |
6 | 300 | 品红色 |
饱和度为一比例值,范围是[0,1] 具体为所选颜色的纯度值和该颜色最大纯度值之间的比值。饱和度的值为0时,只有灰度。亮度表小色彩的明亮程度,取值范围也是 [0,1]
在 HSV 色彩模型中,取色变得更加直观。例如,取值“色调= 0,饱和度=1,亮度=1”,则当前色彩深红色,而且颜色较亮:取值“色调=120,饱和度= 0.3,亮度= 0.4,则当前色彩为浅绿色,而且颜色较暗。
在从 RGB 色彩空间转换到 HSV 色彩空间之前,需要先将 RGB 色彩空间的值转换到[0,1]之间,然后再进行处理,具体处理方法为:
V = max(R,G,B)