颜色模型
颜色模型或色彩空间是一个抽象的数学模型,它描述了如何用一组数值元组来表示颜色,通常是三个或四个值或颜色分量。从几何学上讲,色彩空间是一个坐标系,其中每种颜色都由一个点表示。
颜色模型的目的是以一种标准的、普遍接受的方式来规定颜色。不同的颜色模型适用于不同的应用场景。有些是面向硬件的(例如用于显示器的RGB模型),有些是面向感知的(例如更接近人类颜色感知的HSV和L*a*b*模型),还有一些是为特定任务(如打印)量身定制的(例如CMYK)。
理解不同色彩空间的特性在计算机视觉中至关重要,因为颜色表示的选择会显著影响图像分割、物体识别和特征提取等任务的算法性能。
RGB颜色模型¶
RGB(红、绿、蓝)颜色模型是一种加色模型,其中红、绿、蓝三种光以不同方式叠加,以重现各种颜色。该模型的名称来源于三种加色法基色(红、绿、蓝)的英文首字母。
此模型与显示硬件(如显示器和数码相机)有着根本的联系,这些硬件使用红色、绿色和蓝色的元件(发光体或传感器)来生成或捕捉颜色。如 Figure 1 所示,基色可以组合产生二次色:青色(绿+蓝)、品红色(红+蓝)和黄色(红+绿)。三种基色以最大强度组合会产生白色。
Figure 1:三种基色(红、绿、蓝)的加色混合。
在几何上,RGB颜色模型被表示为一个三维笛卡尔坐标系中的单位立方体(Figure 2)。坐标轴对应R、G、B三个分量。原点(0,0,0)代表黑色,对角(1,1,1)代表白色。立方体的顶点代表基色和二次色。
对于数字图像,R、G、B值通常是量化的。在标准的24位彩色图像中,每个通道由8位表示,这意味着每种基色的强度范围可以从 。这总共允许 万种不同的颜色。
Figure 2:RGB色彩空间,表示为一个单位立方体。
HSV 和 HSL 颜色模型¶
虽然RGB模型对硬件很方便,但对于人类的颜色感知来说却不太直观。我们通常不会用红、绿、蓝分量来描述颜色。**HSV(色相、饱和度、明度)和HSL(色相、饱和度、亮度)**颜色模型旨在更符合感知。
色相 (H): 代表纯色(例如,红、绿、黄)。它以围绕中心轴的角度(0° 到 360°)来衡量。
饱和度 (S): 代表颜色的“纯度”或“鲜艳度”。范围从0(灰色调)到1(最纯的颜色)。
明度 (V) / 亮度 (L): 代表颜色的明暗程度。
明度范围从0(黑色)到1(纯饱和色)。
亮度范围从0(黑色)到1(白色)。亮度为0.5时对应最纯的饱和色。
几何上,HSV空间通常表示为圆锥体或六棱锥,而HSL则表示为双圆锥或双六棱锥(Figure 3)。这些模型在图像处理中的一个关键优势是,它们将强度(V或L)与颜色信息(H和S)分离开来。这使得算法可以只对强度通道进行操作,而不影响颜色,这对于在彩色图像上进行直方图均衡化等任务非常有用。
Figure 3:HSV色彩空间,通常可视化为圆锥体。
从RGB到HSV的转换是一种非线性变换。假设R、G、B值被归一化到[0, 1]范围:
色相的范围在 。注意,如果 ,颜色是无彩色的(灰色调),此时色相未定义。
CMYK颜色模型¶
CMYK(青色、品红、黄色、黑色)模型是一种减色模型,用于彩色打印。它与加色RGB模型相对应。
在减色模型中,颜色是通过从白色表面(如纸张)开始并从中减去亮度来创建的。当光线照射到纸张上时,油墨中的颜料会吸收或“减去”某些波长的光。我们感知到的颜色是反射的光。
青色吸收红光。
品红色吸收绿光。
黄色吸收蓝光。
理论上,将青色、品红和黄色以最大强度混合应该产生黑色。然而,在实践中,由于油墨中的杂质,结果是一种深沉的、浑浊的棕色。为了产生纯正的黑色调并节省油墨,添加了**黑色(Key)**分量,从而形成了CMYK模型。

Figure 4:CMYK色彩空间。
从RGB到CMY的转换很简单(假设所有值都在[0, 1]范围内):
从CMY到CMYK的转换更为复杂,并取决于要使用的黑色油墨量。
L*a*b* 色彩空间 (CIELAB)¶
L*a*b* (CIELAB) 色彩空间是一种感知均匀的色彩空间,这意味着数值上的变化对应于相似的感知颜色变化。这是相对于RGB和HSV的一个显著优势,在后两者中,相同的数值变化可能会根据颜色的不同产生非常不同的感知效果。
L*a*b* 空间由三个分量定义:
L*: 亮度分量,范围从0(黑色)到100(白色)。
a*: 绿-红轴,负值表示绿色,正值表示红色。
b*: 蓝-黄轴,负值表示蓝色,正值表示黄色。

Figure 5:CIELAB色彩空间。
由于其感知均匀性,L*a*b* 空间常用于高端色彩校正、工业颜色匹配,以及作为计算机视觉算法(如图像分割)的特征空间,因为L*a*b* 空间中两种颜色之间的欧氏距离能很好地近似它们的感知差异。
Y’CbCr 色彩空间¶
Y’CbCr 色彩空间广泛用于视频和图像压缩标准,如JPEG和MPEG。它是一系列色彩空间的统称,将图像分为一个亮度分量(Y’)和两个色度分量(Cb和Cr)。
Y’: 亮度分量,表示颜色的明亮程度。
Cb: 蓝色差异色度分量。
Cr: 红色差异色度分量。

Figure 6:Y’CbCr色彩空间。
Y’CbCr 的主要优点是它将亮度信息与颜色信息分开。人类视觉系统对亮度变化的敏感度远高于对颜色变化的敏感度。压缩算法利用这一点进行色度子采样,即以低于Y’分量的空间分辨率来存储Cb和Cr分量。这显著减少了存储图像所需的数据量,而感知损失却很小。这是Y’CbCr在数字视频和图像压缩中如此普遍的关键原因。