我们已经完成了对光的定量描述,包括光谱 (Spectral Power Distribution) 和辐射量。本章则是对颜色的定量描述,称为色度学 (Colorimetry)。

看到这里,我实在很想吐槽一下国内教材现状。比如说我们对比一下本书第二章和徐海松老师的《颜色信息工程》第二章。
本书 2.1.1 颜色混合定律,介绍了 1854 年提出的 Grassmann 的颜色混合定律;颜色信息工程 2.1.3 格拉斯曼颜色混合定律,内容几乎完全一样。
本书 2.1.2 颜色匹配实验,介绍了三基色颜色匹配实验的基本方法;颜色信息工程 2.1.1 颜色匹配实验,连装置的插图都是一模一样的。
这样基础的概念出现的顺序竟然不同;在色度学基础里突然出现色貌这样的词汇并不加解释;一本书里是明度,一本书里却写亮度。给人一种生怕读者学会了的幽默体验。

颜色的混合

混合:颜色的混合分为加色和减色。将各种颜色的光照射在白纸上,能够混合出一个白光,而将各种颜料涂抹在白纸上,则得到黑色。实验中比较常用的是加色混合,显示屏用到的便是加色混合。

匹配 (Matching):一个区域的一半用一种光照亮,另一半用另一种。如果观察者在中间不能观察到分界线,即两边“看起来”是一样的,那么这两个光(或称对应的颜色)对该观察者来说是匹配的。

颜色与光:人感知光,产生颜色的感觉。光是物理量,颜色则是心理物理量。一种光对应一种颜色,一种颜色却不一定对应一种光。

颜色的量:颜色是由光产生的,光的量能够用辐射量衡量,颜色的量也可以相对的用辐射量来衡量。比如辐射量变为两倍,“颜色的量”也变为两倍。

一定条件下,人眼对颜色混合的感知是线性的,包括以下方面:

  1. 如果两个光匹配,两个光具有相同的颜色,将两个颜色的量改变相同的倍数,他们仍然匹配。
  2. 如果颜色 A 和 B 匹配,颜色 C 与 D 匹配,那么颜色 A 和 C 的混合与颜色 B 和 D 的混合也能匹配。
  3. 如果颜色 A 和 B 的混合匹配颜色 C,颜色 X 和 Y 的混合匹配颜色 B。那么颜色 A,X,Y 的混合匹配颜色 C。

简单来说,颜色的混合和小学里学的加法一样,因为颜色的混合本质上就是光谱的叠加,而辐射量自然是可以线性相加的。另外,匹配完成后,不会随着环境的变化而改变,比如改变一下背景的亮度,冷暖等,不会破坏白纸上两边光的匹配。

虽然颜色的混合是线性的,但并不代表对颜色的感知是线性的。以亮度为例,1 单位光叠加 1 单位光能够和 2 单位光匹配,不代表人对亮度的感知是线性增长的。

CIE 1931 RGB 颜色匹配函数

CIE:国际照明委员会(Commission Internationale de l’Eclairage)是一个国际性的组织,致力于研究光、颜色和照明等问题。CIE 为色彩科学领域制定了一系列标准。之前介绍的光谱视效率函数 $V(\lambda)$ 就是 CIE 制定的标准之一。在色彩科学的方方面面都能见到它的身影。

有关 CIE 1931 RGB 及颜色匹配函数的详细内容,请看这篇很好的博客https://yuhaozhu.com/blog/cmf.html

$$ C(\lambda) = \bar{r}(\lambda) R + \bar{g}(\lambda) G + \bar{b}(\lambda) B $$

有一些波长的单色光无法取得匹配,需要把三基色中的一种移动到单色光的这一边,此时他的系数为负。

于是,我们能得到一组曲线,称之为颜色匹配函数 (Color Matching Functions),也就是 $\bar{r}(\lambda)$,$\bar{g}(\lambda)$,$\bar{b}(\lambda)$。1920 年代,W.D. Wright 和 J. Guild 等人通过实验得到了一些数据,CIE 在 1931 年整理并推荐了一组标准的颜色匹配函数,称为 CIE 1931 RGB 颜色匹配函数。

此处我们忽略了无数细节,比如实验中每个波长的单色光的能量是否相同;Wright 和 Guild 使用的三基色的波长并不相同,与 CIE 最终推荐的三基色波长也不相同,这些数据是如何被转换的;他们是否归一化,如何归一化,最终颜色匹配函数的单位到底是什么等等。教材们虽然废话连篇,却在这里选择一笔带过,推荐阅读 链接 中的文章。

Wright & Guild (1931) 2 Degree RGB Colour Matching Function

此处的函数值我们称之为三刺激值 (Tristimulus Values)。CIE 1931 RGB 颜色匹配函数只包含 2°视角的数据,2°视角对应了人眼的中央凹,是视锥细胞分布最密集的区域。Wright 的实验包含 10 位观察者,Guild 的实验则是 7 位,也就是说,这 17 个人的实验数据奠定了后来近百年色彩科学的基础,也留下了隐患和问题。

$$ r = \frac{R}{R+G+B} $$


g 和 b 同理。如此得到的 $r + g + b = 1$,称为色品坐标。

在 1931 RGB 系统中,三基色的光亮度(考虑了光谱视效函数的亮度)比例为 $1:4.5907:0.0601$ 时能混合出与等能白光匹配的颜色,且把匹配函数按比例相加后,能得到先前提到的光谱视效函数 $V(\lambda)$,即可以用三刺激值计算光亮度。这应该是 CIE 1931 RGB 归一化时的参考

等能白光:所有波长的辐射能量相等的光,在 1931 RGB 系统中,等能白光的三刺激值为 (0.33, 0.33, 0.33)。

由 CIE 1931 RGB 结合出的光谱视效函数

CIE 1931 XYZ 色度系统

CIE 1931 RGB 颜色匹配函数基于真实存在的三原色光,因此其计算结果中包含一些负值,这在当时导致了计算上的困难。为了解决这一问题,CIE 推荐了 CIE 1931 XYZ 标准色度系统,该系统使用了假想的三原色光,不仅确保了三刺激值均为正值,还实现了其他一些目标。

XYZ 色度系统由 RGB 色度系统线性变换得到,即:

$$ \begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = \begin{bmatrix} 2.7689 & 1.7517 & 1.1302 \\ 1.0000 & 4.5907 & 0.0601 \\ 0.0000 & 0.0565 & 5.5943 \end{bmatrix} \begin{bmatrix} R \\ G \\ B \end{bmatrix} $$

变换矩阵满足了以下条件:

  1. RGB 系统中,560-700 nm 为一条直线,因为这段范围内不再需要短波长的光参与匹配,新三原色中,希望有两个处于这条直线上。
  2. 希望用 XYZ 中的 Y 值来表示亮度,而 X 和 Z 对亮度的贡献为 0,因此 X 和 Z 应位于无亮度直线上,即 $r + 4.5907g + 0.0601b = 0$。
  3. 最后一条边是在光谱轨迹上与 503 nm 相切的一条直线。
  4. 等能白点仍然位于 (0.33, 0.33, 0.33)

变换后的 XYZ 颜色匹配函数均为正,代表了三个虚构的三原色光的亮度。其中,$Y(\lambda)$ 与光谱视效函数 $V(\lambda)$ 相同。Y 值等同于光亮度。

CIE 1931 XYZ Standard Observer

将 XYZ 归一化,得到色度坐标和光亮度 $xyY$,可画出 CIE 1931 xy 色度图。

CIE 1931 RGB chromaticity diagram

色度图上的着色是为了美观,色度图上的点只有色度信息,而无亮度信息,比如图上没有灰色等。因为色度图仍然是线性的,因此在上面选两个点对应的色光,可以混合出这两个点之间的线段上的颜色。如果选三个点,可以混合出三角形内的颜色,这也是表示显示屏能够显示的颜色范围的方法。从图中还能看出,不存在三种色光能够混合出人眼能感知的全部颜色。

均匀颜色空间

颜色空间(Colour Space):是颜色的数学表示,用几个量(一般是三个)表示颜色。例如 CIE 1931 XYZ 就是一个用 XYZ 三刺激值表示颜色的颜色空间。颜色空间可以是线性的,即颜色之间可以相加减,也可以是非线性的,不同的颜色空间有不同的功能。色彩科学中,需要在合适的颜色空间中对颜色进行处理。

亮度的非线性

首先,人眼对亮度的感知是非线性的,与匹配实验类似,让被试观察色品坐标相同,但亮度不同的两种颜色。他们的亮度分别是 $L$ 和 $L+\Delta L$,当两个亮度差别很小时, 仍然能够达到视觉上的匹配,当亮度差超出某一阈值,能观察到差异,此时的亮度差称为“恰好可察觉的差”(Just Noticeable Difference, JND)。亮度不同时,JND 也不同,所以 XYZ 色空间中的亮度 Y 是不均匀的,Y 从 10 变为 20,90 变为 100,在感知亮度上的变化是不同的。为了解决这个问题,提出两个新的概念:明度(Lightness)和视明度(Brightness),视明度是对绝对亮度的感知,也就是一个光“亮”的程度,明度则是视明度的相对值,表示相对同样照明环境下完全漫反射白的物体的“亮”的程度,例如一张白纸,不论在晴朗的室外,还是室内,其明度均为 90(相对 100),但视明度会变化。明度的目标是相同的明度变化,在亮度上的感知变化也是相同的。

根据不同的实验结果,提出了很多的明度模型。最简单的明度模型仅为一个幂函数,如 Hunter 的明度 $L_H = Y ^ {0.5}$。尽管明度的模型有些简单有些复杂,但他们的基本形状都接近,即暗的时候,人眼对亮度的感知增长较快,亮处则较缓,比如人眼感知的介于黑和白之间的灰色,大约具有 18-25% 的反射率,而非 50%。

色度的非线性

同样的,如果在 CIE 1931 xy 色品图上取比较靠近的两个点,被试可能无法区分他们的颜色,即小于 JND。MacAdam 进行了一些实验,让被试对同一个颜色向不同方向进行加色混色(即往不同的方向偏离),记录能辨别差异时的新位置。实验发现,这些新位置可以用一个椭圆较好的拟合,因此称为 MacAdam 椭圆。

CIE 1931 xy 上的 MacAdam 椭圆

从画在 CIE 1931 xy 色品图上的 MacAdam 椭圆可以看出,该色彩空间的色度均匀性比较差,椭圆大小不一。针对色度的均匀性,也有诸多尝试,比如注意到色品图上半部分的椭圆较细长,那就对色品图进行纵向的压缩,但简单的变换都不能得到较满意的结果。比较著名的尝试有 CIE 1960 UCS 和 1976 UCS。通过对 xy 进行简单的变换,转换为新的色坐标 uv 或 u’v’,在均匀性上有一些提升,此处的 UCS 指代 Uniform-Chromaticity-Scale,均匀色品标尺。

均匀颜色空间

明度模型(或称均匀明度标尺)和均匀色品标尺共同组成了三维的颜色空间,称为均匀颜色空间(Uniform Colour Space)。比较著名的有 CIE 1976 \(L^*a^*b^* \),或称 CIELAB。使用表示明度的 \(L^*\) 和表示红-绿,黄-蓝方向上色度的 \(a^*b^*\) 组成,需注意星号也是符号的一部分,应避免使用 Lab 这样的写法,容易与其他色空间中的符号混淆。

CIELAB 是一个相对的颜色空间,需要先确定一个“参考白点”,该照明环境下完全漫射白的三刺激值 $X_n, Y_n, Z_n$。

$$ L^* = 116 f(\frac{Y}{Y_n}) - 16 $$$$ a^* = 500 [f(\frac{X}{X_n}) - f(\frac{Y}{Y_n})] $$$$ b^* = 200 [f(\frac{Y}{Y_n}) - f(\frac{Z}{Z_n})] $$

其中,

$$ f(t) = \begin{cases} t^{1/3} & t > (24/116)^{3} \\ (841 / 108)t + 16/116 & t \leq (24/116)^{3} \end{cases} $$

CIELAB 至今仍是使用最广泛的均匀颜色空间。

色差

在工业应用中,我们需要定量的衡量颜色之间的差异。例如在质量检测中,生产的一批产品的表面颜色差异小于多少视为合格。

如果有一个均匀颜色空间,那么直接取两个颜色在该均匀颜色空间中的距离,就是最好的色差衡量办法。应用在 CIELAB 空间上,得到:

$$ \Delta E_{ab}=\sqrt{(\Delta L^*)^2+(\Delta a^*)^2+(\Delta b^*)^2} $$

遗憾的是,CIELAB 的均匀性没有强大到可以直接应用这样的距离公式来衡量色差。后来几十年间又诞生了各种各样在 CIELAB 空间上计算色差的补丁,其中最著名的一个是 M.R.Luo 提出的 CIE 2000 色差公式或 CIEDE 2000,其符号为 $\Delta E_{00}$,如果经常关注数码或显示器,应该经常见到 DE2000 作为衡量显示器色差的常用工具。

CIEDE 2000 虽然计算复杂,但它目前是在所有数据集中性能最好的之一,也是 CIE 推荐的最新的色差公式。

孟塞尔颜色系统

Munsell 是美国的一位画家,早在 1905 年(早于 CIE 1931 XYZ),他就通过总结前人经验并结合自身画家的身份,制定了一套色序系统(Colour Order System)。所谓色序系统,是指从视觉感知开始,将各种颜色样本按一定的顺序分类和排序形成的色彩系统。

牛顿在将白光分出彩虹色光的时候,我们就已经能将颜色分为红橙黄绿蓝青紫等颜色,这实际上就是对颜色的色相(Hue)进行分类。

Munsell 将颜色按三个维度,明度(Value),色相(Hue)和色度(Chroma),将颜色排列到一个三维空间中,称为颜色立体。其中的颜色卡片在视觉感知上,在三个维度上都被认为是等间隔的。是目前应用最广泛的颜色系统之一。

因为 Munsell Color System 被认为是感知上均匀的,因此测量其中颜色的三刺激值,并转换到后来的均匀颜色空间中,观察这些点在均匀颜色空间中的分布是否仍然比较“均匀”,就能够一定程度上衡量均匀颜色空间的性能。

各种均匀颜色空间中的 Munsell 颜色分布

M. Li and M. R. Luo, ‘Simple color appearance model (sCAM) based on simple uniform color space (sUCS)’, Opt. Express, vol. 32, no. 3, p. 3100, Jan. 2024, doi: 10.1364/OE.510196.