色彩的生理机制

3.7K
0
0
最后修改于

依据初等通识教育的内容我们知道,光照射到物体上,然后反射光进入人眼,人由此能到看到物体及其颜色。颜色是我们对世界的感知。

视网膜上存在视锥细胞、视杆细胞、神经节细胞以及负责信号转换传递的双极细胞。

视锥细胞、视杆细胞#

视锥细胞主要负责明视觉,视杆细胞主要负责暗视觉。通过对外部光线输入进行响应产生对应的神经信号,交由后部处理。

具体来说:

  • 当光线充足的时候,视杆细胞基本是饱和激活的。此时决定人眼成色的主要是三种视锥细胞。此时可以通过颜色充分感知世界。
  • 当光线不足的时候,视锥细胞的激活程度极低,而视杆细胞在这种环境下可以捕捉到微弱的光线变化,此时决定人眼成像的主要是视杆细胞。在这种情况下,很难分辨出具体的颜色。

因此当我门在讨论颜色问题的时候,我们默认是在明视觉条件下讨论的。

视锥细胞分为 LMS 三种,分别对长、中、短不同波长的光线敏感。这些细胞含有不同的感光色素,当光线照射到视网膜上时,这些色素会发生变化,从而产生电信号。对应图中红蓝绿三线。

视杆细胞则比较单一,对 400-600nm 波长的光敏感,但相比于视锥细胞,即使是极低的光强,也会有较为明显的刺激响应(用于低光 / 无光环境)。

神经节细胞#

在神经细胞获取到具体的时候,神经节细胞负责

格拉斯曼定律#

这是一个经验法则,若两单色光组合成一测试色光,则观测者感知到的三原色数值为两单色光分别被单独观测的三原色数值之和。换句话说,如果光束一及光束二为单色光,而(R1,G1,B1)\displaystyle (R_{1},G_{1},B_{1})(R2,G2,B2)\displaystyle (R_{2},G_{2},B_{2})分别为观测者对光束一及光束二的感知三原色数值,当此二光束合并时,观测者感知的三原色数值为(R,G,B)\displaystyle (R,G,B),其中:

R=R1+R2G=G1+G2B=B1+B2\begin{aligned} R &= R_1 + R_2 \\ G &= G_1 + G_2 \\ B &= B_1 + B_2 \end{aligned}

对于任意射入人眼的一束光线,其在人眼中的颜色,可以表示为 (R,G,B)(R,G,B)。但这还是一个抽象坐标。我们目前对其坐标系以及坐标所代表的含义一无所知。

那么任意一个颜色就可表示为(这三种颜色在人眼中不同,对应的物理性质也不同,也无法用其中两个颜色调配出另外一种颜色,因此可以认为非线性相关):

(abc)(R1G1B1R2G2B2R3G3B3)=(RxGyBz)=Color\begin{aligned} &\begin{pmatrix} a & b & c \end{pmatrix} \begin{pmatrix} R_1 & G_1 & B_1 \\ R_2 & G_2 & B_2 \\ R_3 & G_3 & B_3 \end{pmatrix} \\ &= \begin{pmatrix} R_x & G_y & B_z \end{pmatrix} \\ &= Color \end{aligned}

我们可以将其转为如下形式:
C=R(r)+G(g)+B(b)C = R(r) + G(g) + B(b)
表示一种颜色CC可以由RR单位的rr原色、GG单位的gg原色和BB单位的bb原色组合而成。

三刺激值#

但是,我们仍需要进行更为具体的量化,确定单位的含义和具体的数值。在原论文A re-determination of the trichromatic coefficients of the spectral colours中。为了确定原色的单位,通常用色度计所用的三种原色通过一定的比例混合得到白色,此时将三种原色的对应的读数进行加权修正(加权后相等),将其视为基本单位。然后按照需要改变刺激值,也就是调整光的强度(如缩小输入光的角度)。三刺激值直接对应到红绿蓝三色光,选择这些波长完全是出于实用考虑,决定性因素是希望将负系数尽可能小,并确保蓝色原色具有足够的强度。然而,只要它们在色三角形中的位置已知,结果就可以转换为任何其他组原色。

这种方法有一些潜在的理论依据,因为可以认为白色匹配的比例具有相等的着色值,因为当混合时,它们会产生无色的感觉。但在实践中,只要它们保持一致,原色单位的基础是什么实际上无关紧要。

在确定了基本的三刺激值之后,就可以由实验得到波长 - 刺激值图。

具体来说,这张图的含义是,对于波长为xx的光(颜色为 CxC_x,横轴),可以通过施加刺激值分别为RyR_yGyG_yByB_y的红绿蓝光进行模拟。

其中,在部分情况下出现了负刺激值,这说明对于目标色CxC_x,无法仅通过右侧的红绿蓝光的叠加进行拟态,因为现实的实验手段最低的刺激值只能为 0。实验者必须将一部分红光 “叠加” 被测试的单色光上,才能用剩下的绿光和蓝光实现匹配。也就是从 Cx=Ry+Gy+ByC_x = R_y + G_y + B_y 变为了 Cx+Ry=Gy+ByC_x + R_y = G_y + B_y,用这种方式得到的结果也就是负刺激值。

但换个角度,我们假设红绿蓝三种颜色对应的坐标为:Red=(R1,G1,B1)Red=(R_1,G_1,B_1)Green=(R2,G2,B2)Green=(R_2,G_2,B_2)Blue=(R3,G3,B3)Blue=(R_3,G_3,B_3)

上面的说明描述了如何用三原色光去匹配一个光谱上单波长的颜色刺激。下一步就是拓展三刺激值,使其能够应用于任何由光谱功率分布(SPD)定义的给定刺激。

为此可以利用格拉斯曼的加法性和比例性法则,将刺激光谱功率分布的每个光谱成分的三刺激值相加,以获得刺激的综合三刺激值(也就是积分)。从概念上讲,光谱的三刺激值(即光谱三刺激值)是通过将每个波长的单位功率与三种原色的加法混合来获得的。

对于任意一个 SPD 输入,三刺激值可以用如下方式表示:
R=0I(λ)rˉ(λ)dλ\displaystyle R=\int _{0}^{\infty }I(\lambda )\,{\bar {r}}(\lambda )\,d\lambda
G=0I(λ)gˉ(λ)dλ\displaystyle G=\int _{0}^{\infty }I(\lambda )\,{\bar {g}}(\lambda )\,d\lambda
B=0I(λ)bˉ(λ)dλ\displaystyle B=\int _{0}^{\infty }I(\lambda )\,{\bar {b}}(\lambda )\,d\lambda
其中 I(λ)\displaystyle I(\lambda )为该光束对波长的强度分布,也就是 SPD;rˉ(λ)\displaystyle {\bar {r}}(\lambda )gˉ(λ)\displaystyle {\bar {g}}(\lambda )bˉ(λ)\displaystyle {\bar {b}}(\lambda )则为颜色匹配函数。

色度与明度#

经验告诉我们,0.5 强度的蓝色光源和 0.2 强度的蓝色光源。都是蓝色。但刺激值不一样。这实际上意味着,颜色主要由三刺激值的比例决定,三刺激值本身也代表着入射光线的强度。
因此我们可以在三刺激值的基础上进一步划分出两个概念,色度与明度。
色度由刺激值占总体的比例决定。对于色度,可以通过如下等式进行定义:
r=RR+G+Br=\frac{R}{R+G+B}
g=GR+G+Bg=\frac{G}{R+G+B}
b=BR+G+Bb=\frac{B}{R+G+B}
又有 r+g+b=1r+g+b=1,因此实际上色度可以通过其中两个分量(如 rg)进行定义。
在由 RGB 定义的三维色彩空间中,rgb 则对应了其中颜色在 R + G+B = 1 平面上的投影。代表的是这个颜色的方向。

而对应向量的长度则直接对应着亮度 / 明度。

刺激可以使用三刺激值来指定。也就是我们可以张成一个三维的色彩空间。但是目前这个空间还不够实用,因为在部分情况下,存在负值。负值很难对应到现实意义。

因此不妨做一个线性变换,构造一个新的 XYZ 色彩空间。

[XYZ]=1b21[b11b12b13b21b22b23b31b32b33][RGB]=10.17697[0.490.310.200.176970.812400.010630.000.010.99][RGB]\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = \frac{1}{b_{21}} \begin{bmatrix} b_{11} & b_{12} & b_{13} \\ b_{21} & b_{22} & b_{23} \\ b_{31} & b_{32} & b_{33} \end{bmatrix} \begin{bmatrix} R \\ G \\ B \end{bmatrix} = \frac{1}{0.17697} \begin{bmatrix} 0.49 & 0.31 & 0.20 \\ 0.17697 & 0.81240 & 0.01063 \\ 0.00 & 0.01 & 0.99 \end{bmatrix} \begin{bmatrix} R \\ G \\ B \end{bmatrix}
X=0I(λ)xˉ(λ)dλ\displaystyle X=\int _{0}^{\infty }I(\lambda )\,{\bar {x}}(\lambda )\,d\lambda
Y=0I(λ)yˉ(λ)dλ\displaystyle Y=\int _{0}^{\infty }I(\lambda )\,{\bar {y}}(\lambda )\,d\lambda
Z=0I(λ)zˉ(λ)dλ\displaystyle Z=\int _{0}^{\infty }I(\lambda )\,{\bar {z}}(\lambda )\,d\lambda
原来的带有负值的波长 - 刺激值图摇身一变:

这个新色彩空间有不少好处:

  1. 结果线性变换后的新颜色匹配函数在所有地方都大于等于零。(在 1931 年,正值有利于简化计算,当时的计算是凭借手工或滑尺进行的)。
  2. y(λ){\displaystyle {\overline {y}}(\lambda )}颜色匹配函数精确的等于 “CIE 标准适应光观察者”(CIE 1926)的适应光发光效率函数V (λ)。它是描述感知明度对波长的变换的亮度函数。可以用 RGB 颜色匹配函数的线性组合构造亮度函数的事实是没有任何方式来保证的,还有,这个要求的主要原因是计算简单。

对于 “为什么可以将 RGB 颜色匹配函数的线性组合构造为亮度函数” 这个问题,当看到将颜色匹配函数变换为亮度函数,直觉上会感觉这样的操作不太对,我翻阅了很多资料,几乎没有任何资料来说明为什么可以进行这种变换。因为这就像是两种完全不同性质的东西。
实际上,这背后存在假设,亮度可以表示为三种颜色匹配函数的线性组合:yˉ(λ)=αrˉ(λ)+βgˉ(λ)+γbˉ(λ)\bar {y}(\lambda ) = \alpha \bar {r}(\lambda) + \beta \bar {g}(\lambda) +\gamma \bar {b}(\lambda),只有基于这种假设,这种线性转换才能成立

  1. 对于恒定能量白点,要求为x=y=z=13x=y=z=\frac{1}{3}
  2. 由于色度定义和要求 xy 为正值的好处,可以在三角形 [1,0],[0,0],[0,1] 内见到所有颜色的色域。在实践中必须把色域完全的充入这个空间中。
  3. z(λ){\displaystyle {\overline {z}}(\lambda )}可以在 650 nm 处被设置为零而仍保持在实验误差范围内。为了计算简单规定可以这样做。

我们将这个图形映射到三维的色彩空间中(以 X,Y,Z 的三个读书作为坐标),就是如同下面这样的一个椎体。

我们可以将颜色划分为色度与亮度,最终的颜色由色度和亮度共同决定。

三角色度图#

由于一组实验中的原色可以用三刺激值来指定,以便使用另一种系统进行匹配,因此可以推导出一种线性变换(3×3 矩阵变换)​,将一组原色的三刺激值转换为另一组原色的三刺激值。

三角色度图。

CIE 决定将色度匹配函数转换为另一组原色,即 XYZ 原色。进行这种转换的主要目标是消除色度匹配函数中的负值,并迫使其中一个色度匹配函数等于 CIE 1924 明视觉光效函数 V(l)​。通过选择能够匹配所有物理可实现颜色刺激的原色,消除了负值。这只能通过比单色光更饱和的虚想原色来实现。这是一种直截了当的数学构造,应该注意的是,尽管这些原色是想象的,但为这些原色得出的色度匹配函数是基于非常真实的色度匹配结果和格拉斯曼定律的有效性。迫使一个色度匹配函数等于 V(l)函数的目的是将 CIE 光度学系统(1924 年建立)纳入 CIE 色度学系统(1931 年建立)​。这是通过选择两个假想的原色 X 和 Z 来实现的,使它们不产生任何亮度响应,从而将所有的亮度响应都留在第三个原色 Y 上。​(​)λ(​)λx,y 和 XYZ 原色的色度匹配函数,

CIE 1931 标准不使用 NPL 标准白色作为参考白色。相反,它使用假设的等能白光 (EEW),该白光在所有波长上具有相同的能量 / 功率。

实验设备:
Wright 的试验中,进光量通过控制光圈大小控制光的进入量。也就是提前定义了 1 个单位的三种基色的单色光是什么样的。然后用三种光组合。
这里做出了一个重要的假设,“要匹配白色,三种光的量应该是相等的”。
但是这并非现实,我们需要

为了匹配白色,光圈设置为红色 30°,绿色 15°,蓝色 60°;然后我们做出一个决定性的判断,说这是相同数量的红、绿、蓝。也就是说,一个单位的红色是指当光圈读数为 30° 时放出的红光量;一个单位的绿色是指当光圈读数为 15° 时放出的绿光量;一个单位的蓝色是指当光圈读数为 60° 时放出的蓝光量。

一旦我们定义了主光源的单位,我们就可以确定需要多少单位(即多少个单位)的主光源来匹配任何测试光源。在 Wright 的例子中,对于一种新的颜色,比如 C,孔径读数是红色 40°,绿色 10°,蓝色 20°;然后我们知道我们需要 40/30 单位的红色,10/15 单位的绿色,以及 20/60 单位的蓝色来匹配 C 4 。这些单位数量转化为 4:2 的比例。

为了量化 C 的量,Wright 进一步定义,当构成的红色、绿色和蓝色的量归一化,使它们加起来为单位 1,即 0.571 : 0.286 : 0.143,生成的光 C 被称为具有一个单位的量。相对的红色、绿色和蓝色单位称为三色系数,它与现代术语中的色度系数本质上是一回事。

我们以两种方式解释这个方程。首先,一个单位的 C 被定义为混合 0.571 个单位的红色、0.286 个单位的绿色和 0.143 个单位的蓝色。其次,一个单位的 C 与混合 0.571 个单位的红色、0.286 个单位的绿色和 0.143 个单位的蓝色具有相同的颜色。请注意,一个单位的红色、绿色和蓝色中的光量对应于实际仪器读数,但一个单位的 C 中的光量,尽管是一种物理属性,是从红色、绿色和蓝色的数量中推导出的概念。

决定色度系数有三个关键因素:
1)原色的选择;红绿蓝
2)参考白的选择,参考白光是英国国家物理实验室(NPL)标准白光
以及 3)用于定义单位的 “直觉”,1 个单位的红 + 1 个单位的绿 + 1 个单位的蓝能够匹配出目标白色。

CMF | Yuhao Zhu

用三色光作为绝对基准,来定义白色光源。约束
Guild 的试验中,先定义好白色光源,然后用三色光进行拟合。

  1. NPL White = vR + vG + vB

(NPLk1v1k2v2k3v3YZ)\begin{pmatrix} NPL & k_1v_1 & k_2v_2 & k_3v_3 \\ Y \\ Z \end{pmatrix}

(NPLk1v11k2v12k3v13xCk1v12k2v22k3v23)    v2\begin{pmatrix} NPL & k_1v_{11} & k_2v_{12} & k_3v_{13} \\ xC & k_1v_{12} & k_2v_{22} & k_3v_{23} \end{pmatrix} \implies \\ v2