Skip to content

Latest commit

 

History

History
277 lines (190 loc) · 30.6 KB

File metadata and controls

277 lines (190 loc) · 30.6 KB

18 - 色彩

光子是光信息的载体。它们通过具有与波有关性质的介质传播。在表面边界,它们与物质相互作用,表现得更像粒子。它们也可以被视网膜吸收,在那里它们携带的信息被转换成电信号,随后由大脑处理。只有在那里,颜色的感觉才会产生。

因此,对所有形式的颜色的研究涉及到几个不同的领域:光通过空间传播的物理学,与物质相互作用的化学,以及与感知和认知颜色有关的神经科学和心理学。

在计算机图形学中,传统上,我们对光如何在空间中传播采取简化的观点。光子沿着直线传播,直到它们碰到表面边界,然后根据某种反射函数被反射。单个光子将携带一定的能量,这是由它的波长表示的。因此,光子只有一个波长。它的波长 λ 和它携带的能量之间的关系(ΔE): $$\lambda\triangle E=1239.9$$ 其中 ΔE 的单位是电子伏特(eV)。

在计算机图形学中,模拟单个光子的效率不高;相反,我们它们的大量集合。如果我们取大量的光子,每个光子携带的能量可能不同,那么它们加在一起就代表了一个光谱。 光谱可以被认为是一个图表,其中光子的数量与波长的关系被绘制出来。因为相同波长的两个光子携带的能量是相同波长的单个光子的两倍,所以这张图也可以看作是能量与波长的关系图。人类敏感的波长范围大约在 380 到 800 纳米之间。 因此,当模拟光时,我们可以追踪光线,每一条光线上都携带了一个光谱。完成这个任务的渲染器通常被称为光谱渲染器。应该清楚的是,我们通常不会花大力气取构建一个光谱渲染器。相反,我们将光谱替换为通常使用红色、绿色和蓝色的分量来表示的颜色向量。

通过追踪光线来模拟光,处理了光的物理特性,但需要注意的是,光的一些特性,例如偏振、衍射和干涉,并没有建模。

在表面边界,我们通常通过反射函数来模拟光的变化。这些函数可以通过角反射计直接测量,从而产生大量的表面数据,这些表面数据可以用各种不同的函数更紧凑地表示。 尽管如此,这些反射函数在本质上是经验的,也就是说,它们抽象出了当光子被电子吸收和重新发射时发生的化学反应。因此,反射率函数对计算机图形学的建模是有用的,但反射率函数不能解释为什么某些波长的光被吸收而其他波长的光被反射。因此,我们不能用反射率函数来解释为什么香蕉反射的光的光谱组成在我们看来是黄色的。(解释这些需要电子轨道的知识)

最后,当光线到达视网膜时,它被转换成电信号,并传播到大脑。大脑的很大一部分致力于处理视觉信号,其中一部分产生了对颜色的感觉。因此,即使我们知道香蕉反射的光谱,我们仍然不知道为什么人类会把“黄色”这个词和香蕉联系在一起。 此外,正如我们将在本章的其余部分中发现的那样,我们对颜色的感知比乍一看要复杂得多。它随光照变化,在观察者之间变化,在观察者内部随时间变化。

换句话说,香蕉发出的光谱是在环境的背景下被感知的。要预测观察者如何感知“香蕉光谱”,需要了解包含香蕉的环境以及观察者的环境。在许多情况下,这两种环境是相同的。 然而,当我们在显示器上显示香蕉的照片时,这两种环境将是不同的。由于人类的视觉感知取决于观察者所处的环境,因此它对照片中的香蕉的感知可能与直接看着香蕉的观察者的感知不同。 这对我们应该如何处理颜色有着重要的影响,并说明了与颜色相关的复杂性。

为了强调人类视觉所起的关键作用,我们只需要看看颜色的定义:”颜色是视觉感知的一个方面,观察者可以通过它来区分两个相同大小和形状的无结构视场之间的差异,那样的差异可能是由观察中涉及的辐射能光谱组成的差异引起的“。从本质上讲,没有人类观察者就没有颜色。

幸运的是,我们对颜色的大部分了解都是可以量化的,这样我们就可以通过计算来纠正人类视觉的特性,从而显示出观察者所看到的图像,这些图像的设计者就是这样设计的。

18.1 色度学 Colorimetry

色度学 Colorimetry 是一门测量和描述颜色的科学。因为颜色最终是人的反应,所以颜色测量应该从人的观察开始。人类视网膜上的光电探测器由杆状体和锥状体组成。杆状细胞高度敏感,在弱光条件下发挥作用。在正常的光照条件下,视锥细胞主要负责人类的视觉。有三种视锥细胞,它们共同负责色觉。

虽然有可能在呈现某些视觉刺激时直接记录视锥细胞的电输出,但这样的做法将会是侵入性的,同时忽略了观察者之间有时存在的实质性差异。此外,在这种直接记录技术出现之前,许多颜色测量方法就已经发展得很好了。

另一种方法是通过测量人类对一块块颜色的反应来测量颜色。这就是颜色匹配实验。进行这些实验产生了几个标准化的观察结果,这些结果可以被认为是实际人类观察者的统计近似。然而,首先,我们需要描述一些使得颜色匹配实验成立的的假设——格拉斯曼定律。

18.1.1 Grassmann 定律

鉴于人类有三种不同的视锥细胞类型,颜色匹配的实验规律可以总结为三色概化,这表明任何颜色刺激都可以与三种适当调制的颜色源的加性混合物完全匹配。 这种颜色的特性在实践中经常被使用,例如电视和显示器通过为每个像素添加红、绿、蓝的混合光来再现许多不同的颜色。这也是渲染器可以只用三个值来描述每种颜色的原因。

三色泛化使我们能够在任何给定的刺激和其他三种颜色刺激的加性混合物之间进行颜色匹配。赫尔曼·格拉斯曼是第一个用代数规则描述颜色匹配规则的人。这就是著名的格拉斯曼的加色匹配定律:

  1. 对称规则。如果颜色刺激 A 与颜色刺激 B 匹配,则 B 与 A 匹配。
  2. 传递规则。如果 A 与 B 匹配,B 与 C 匹配,则 A 与 C 匹配。
  3. 比例性规则。如果 A 匹配 B,则 αA 匹配 αB,其中 α 是一个正比例因子。
  4. 可加性规则。如果 A 与 B 匹配,C 与 D 匹配,A + C 与 B + D 匹配,则可以得出 A + D 与 B + C 匹配。

可加性定律构成了配色和色度学的基础。

18.1.2 视锥细胞的响应

每一种视锥细胞都对一定范围的波长敏感,它们覆盖了整个可见范围的大部分。然而,对波长的灵敏度不是均匀分布的,而是一个带有波峰的分布,其中波峰位于灵敏度最大的波长位置。 这种峰值波长的位置对于每种锥型都是不同的。三种视锥细胞分为 S、M 和 L 锥,其中字母代表短、中、长,表示可见光谱中峰值灵敏度的位置。 视锥细胞的响应是它输出的电信号的大小,作为入射到视锥细胞上波长的函数。每种视锥细胞的视锥响应函数是波长 λ 的函数,它们由 L(λ), M (λ)和 S(λ)给出。

18.1.3 色彩匹配实验

考虑到三个刺激值是通过在可见范围内对两个函数的乘积进行积分而产生的,很明显,人类视觉系统并不是一个简单的波长检测器。相反,我们的光感受器(眼睛)充当一个近似线性积分器。 因此,有可能找到两种不同的光谱组成,例如 Φ1(λ)和 Φ2(λ),在积分后产生相同的响应(L, M, S)。这种现象被称为异谱现象 异谱现象是人类视觉的关键特征,它允许我们构建色彩再现设备,包括本书中的彩色插图以及我们在打印机、电视和显示器上看待的任何东西。

Metamerism:异谱同色现象。光谱不同,但是人眼感受到的色彩相同。

色彩匹配实验也依赖于异谱现象。假设我们有三个不同颜色的光源,每个光源都有一个刻度盘(旋钮)来改变其强度。我们称这三种光源为基色光源。 我们现在应该能够以这样的一种方式调整每一种源色彩的强度:原色彩当混合在一起时,得到的光谱与第四个未知光源的感知颜色相匹配。当我们进行这样的实验时,我们基本上是将三原色与未知的颜色相匹配。三个表盘的位置就代表了第四个光源的颜色。

在这样一个实验中,我们用格拉斯曼定律将原色的三个光谱相加。我们还使用了异谱同色现象,因为三种原色的光谱总和几乎肯定不同于第四种光源的光谱(光谱的形状不同,肯定无法恢复光谱的形状)。然而,从这两个光谱计算的三刺激值将是相同的(但是光谱对三种视锥细胞的积分值(感官刺激)是相同的),从而产生了颜色匹配。

注意到,我们实际上不必知道锥体的响应函数来进行这样的实验。只要我们在相同的条件下使用相同的观察者,我们就能够匹配颜色并记录每种颜色的表盘位置。但是,每次要测量颜色都要进行这样的实验,这是非常不方便的。出于这个原因,我们确实想知道光谱锥响应函数,并对一组不同观测者的响应函数取平均值,以消除观测者之间的可变性。

18.1.4 标准观察者

如果我们对大范围的颜色进行颜色匹配实验,由一组不同的观察者进行,就有可能生成一个平均颜色匹配数据集。 如果我们专门使用单色光源来匹配我们的原色,我们就可以对所有可见的波长重复这个实验。由此产生的三刺激值称为光谱三刺激值,可以根据波长 λ 绘制。 通过使用一组定义良好的主光源,光谱三色刺激值可以得到三种颜色的匹配函数。国际照明委员会(CIE)将三种原色分别定义为 435.8 nm、546.1 nm 和 700 nm 的单色光源。 有了这三种单色光源,所有其他可见波长都可以通过不同比例的三色光源混合得到。匹配给定波长 λ 所需的原色彩的量被编码在颜色匹配函数中,由 r(λ), g(λ)和 b(λ)给出。与这些颜色匹配函数相关的三刺激值被称为 R、G 和 B。

考虑到光是加性的,并且光不能是负的,您可能已经注意到图 18.4 中的一个奇怪的地方:为了创建某些波长光线的匹配,我们需要减去一些光。 虽然没有负光这种东西,但我们可以再次使用格拉斯曼定律,不是从三原色混合物中减去光,相反,我们可以在匹配的颜色中添加相同数量的光。

减去红光,等价于加上绿光和蓝光。

国际照明委员会 CIE 的标准色彩匹配函数 r(λ),g ( λ)和 b( λ) 允许我们通过简单地比较光谱的积分值(色彩刺激),来判断光谱分布 Φ1 是否与第二个光谱分布 Φ2 匹配: 当然,只有当所有三个色彩刺激值都匹配时,才能保证颜色相匹配。

这些颜色匹配功能的重要性在于,我们现在能够通过三刺激值来简洁地交流和描述颜色。 对于给定的光谱函数,CIE 颜色匹配函数提供了一种精确的方法来计算三刺激值。只要每个人都使用相同的颜色匹配函数,就应该总是能够判断是否匹配。

如果相同的颜色匹配函数不可用,那么有可能将一组三刺激值转换为一组不同的三刺激值,适用于相应的另一组原色。 CIE 已经定义了一个这样的转换,有两个具体的原因。

  1. 首先,在 20 世纪 30 年代,数值积分很难实现,对于既可以是正的也可以是负的函数更是如此。
  2. 其次,CIE 已经开发了光亮度响应函数 CIE V(λ)。人们希望有三个积分函数(V (λ)是其中的一个),并且在可见范围内所有积分函数都是正的。

为了创建一组正的颜色匹配函数,有必要定义原色。换句话说,要重现可见光谱中的任何颜色,我们需要物理上无法实现的光源。 CIE 确定的颜色匹配函数命名为“x(λ)”、“y(λ)”和“z(λ)“。注意,y( λ)等于光亮度响应函数 V (λ),并且这些函数中的每一个都是正的。他们被称为 CIE 1931 标准观察器。

相应的三刺激值被称为 X、Y 和 Z,以避免与通常与可实现原色相关联的 R、G 和 B 三刺激值混淆。(R, G, B)三刺激值到(X, Y, Z)三刺激值的转换由一个简单的 3×3 变换定义: 为了计算三刺激值,我们通常直接将标准观察器颜色匹配函数与感兴趣的光谱 Φ(λ)积分($\int,x(\lambda)\cdot \Phi(\lambda),d\lambda$),而不是先通过 CIE’r(λ),’g’(λ)和’b’(λ)颜色匹配函数,然后进行上述转换。 它允许我们计算一致的颜色测量,并确定两种颜色何时相互匹配。

为了计算三刺激值,我们通常直接将标准观察者颜色匹配函数与感兴趣的光谱 Φ(λ)集成,而不是先通过 CIE’r(λ),’g’(λ)和’b’(λ)颜色匹配函数,然后进行上述转换。它允许我们计算一致的颜色测量,并确定两种颜色何时相互匹配。

18.1.5 色度坐标

每种颜色都可以用三个刺激值(X, Y, Z)来表示。我们可以用 X, Y 和 Z 轴定义一个正交坐标系,并在生成的 3D 空间中绘制每种颜色。 这就是所谓的色彩空间。颜色所在的空间范围被称为色域

在 3D 色彩空间中可视化颜色是相当困难的。此外,任何颜色的 Y 值都对应于它的亮度,这是由于 Y (λ)等于 V (λ)(光照明响应函数)。因此,我们可以将三刺激值投射到一个接近色度信息的二维空间,即与亮度无关的空间。这个投影称为色度图,通过归一化同时去除亮度信息得到:

Y 才是亮度,y 只是色度的导出参数。

假设 x + y + z 等于 1,那么 z 值是冗余的,允许我们在色度图中绘制 x 和 y 色度。虽然 x 和 y 本身不足以完全描述一种颜色,但我们可以使用这两个色度坐标和传统的三个刺激值中的一个(通常是 Y)来恢复其他两个三刺激值: 通过在色度图中绘制所有单色(光谱)颜色,我们得到了马蹄形曲线。曲线上的点称为频谱轨迹。所有其他颜色将生成位于曲线内的点。马蹄铁两端之间的紫色线并不代表单色,而是长短波刺激的组合。

单色光(monochromatic color),混合色光的组成部分。单一频率(或波长)的光,不能产生色散。 可用三棱镜将白光分解为各种颜色,然后用一个可调节的长形狭缝只允许某一波段的光通过而阻挡其他波段的颜色光,这一通过的波段即单色光。

RGB 色彩域无法混合出所有的颜色(如果不允许负值的情况下,可以混合的颜色就是三角形内的颜色),但是 XYZ 域可以混合出所有的色彩。 但是 XYZ 域中并非所有的点都代表一个颜色。

一种(非单色)原色可以在所有可见波长上进行积分,从而得到(X, Y, Z)三刺激值,并随后得到(x, y)色度坐标,即色度图上的一个点。 多个原色重复此操作,会在色度图上产生一组点,这些点可以用直线连接起来形成一个面积。以这种方式跨越的面积代表了可以通过这些原色的加性混合物再现的颜色范围。 色度图提供了对加性混合物的参考。然而,它们应该被小心使用。

  1. 首先,马蹄铁的内部不应该有颜色(???),因为任何颜色再现系统都会有自己的原色,只能再现色度图的某些部分。
  2. 其次,由于 CIE 颜色匹配函数并不代表人类的视锥敏感度,因此色度图上任何两点之间的距离并不能很好地指示人们对这些颜色的感知差异。

一种更均匀的色度图被开发出来,至少部分地解决了第二个问题。CIE u'v'色度图提供了感知上更均匀的间距,因此通常优于(x, y)色度图。它通过应用了一种不同的归一化从(X, Y, Z)三刺激值计算得到: 也可以直接从(x, y)色度坐标计算:

18.2 色彩空间

如上所述,每种颜色可以用三个数字表示,例如由(X, Y, Z)三刺激值定义。然而,它的原色是虚构的,这意味着不可能构建一个具有三个光源(发出的光线都具有正的强度)的设备,可以再现可见光谱中的所有颜色。

出于同样的原因,对图像进行编码和计算可能并不实用。例如,有大量可能的 XY Z 值不对应于任何物理颜色。这将导致存储可用位的使用效率低下,并且对位深度的要求更高,以便在图像处理后保持视觉完整性。 虽然有可能构建一个具有接近 CIE XYZ 颜色匹配函数的原色的捕获设备,但硬件和图像处理的成本使这成为一个没有吸引力的选择。 由于这些原因,不可能建立一个对应于 CIE XYZ 的显示,有必要设计其他颜色空间,来实现:物理可实现性,高效编码,感知均匀性和直观的颜色规范。

CIE XYZ 色彩空间仍在积极使用,主要用于其他色彩空间之间的转换。它可以看作是一个独立于设备的色彩空间。其他色彩空间可以根据它们与 CIE XY Z 的关系来定义,这通常由特定的变换指定。 例如,线性和加性三色显示设备可以通过 3 × 3 矩阵向 CIE XYZ 色彩空间简单的来回转换。 还可以指定一些非线性附加变换,例如,为了最小化感知的误差——当数据以有限的位深度存储时,或者在输入信号和发射光量之间具有非线性关系的设备上直接显示。

18.2.1 构建矩阵变换

对于具有三原色的显示设备,例如红、绿、蓝,我们可以通过发送颜色向量(1,0,0)、(0,1,0)和(0,0,1)来测量发射光的光谱组成。这些向量表示其中一种原色完全打开,而另两种原色关闭。测量的光谱输出,我们可以计算相应的色度坐标(xR, yR), (xG, yG)和(xB, yB)。

显示器的白点定义为将颜色向量(1,1,1)发送到显示器时发出的光谱。其对应的色度坐标为(xW, yW)。三个原色和白点表征了显示器的特征,对于在显示器的颜色空间和 CIE XY Z 之间构建一个变换矩阵而言,它们是必要的。

这四个色度坐标可以扩展为色度三元组,重建 z 坐标(z = 1−x−y),从而得到色度三元组(xR, yR, zR),(xG, yG, zG), (xB, yB, zB)和(xW, yW, zW)。 如果我们知道白点的最大亮度,我们可以计算出它对应的三刺激值(XW, YW, ZW),然后解出 SR, SG, SB 的方程,这些值表示亮度比的缩放标量 任何给定颜色的亮度都可以通过计算以这种方式构造的矩阵的中间行来计算: 要在给定设备的 XYZ 和 RGB 之间进行转换,可以简单地反转上述矩阵(取逆矩阵)。

如果图像是在原色和白点未知的 RGB 色彩空间中表示的(三原色和白点未知),那么一个最好的方法就是假设该图像是在标准 RGB 色彩空间中编码的。 一个合理的选择是假设图像是根据 ITU-R BT.709 指定的,这是用于 HDTV 的编码和广播的规范。 注意到,相同的原色和白点也用于定义众所周知的 sRGB 色彩空间。这个 RGB 色彩空间和 CIE XYZ 之间的变换是: 通过代入设备的最大 RGB 值,我们可以计算出白点。 对于 ITU-R BT.709,最大值为(RW, GW, BW) =(100,100,100),那么白点则为(XW, YW, ZW) =(95.05, 100.00,108.90)。 除了线性变换之外,sRGB 色彩空间还具有后续的非线性变换特征。非线性编码由式给出 这种非线性编码有助于减少由于量化误差引起的,在实际应用中的感知误差。

18.2.2 与设备相关的 RGB 空间

由于每个设备通常都有自己的一组原色和白点,因此我们将相关的 RGB 色彩空间称为与设备相关的。值得注意的是,即使所有这些设备都在 RGB 空间中运行,它们也可能具有非常不同的原色和白点。 因此,如果我们在某些 RGB 空间中指定了一张图像,那么它对我们来说可能会显得非常不同,这取决于我们显示它的设备。

这显然是不希望出现的情况,是由于缺乏色彩管理造成的。 但是,如果图像是在已知的 RGB 色彩空间中指定的,则可以首先将其转换为与设备无关的 XYZ,然后将其转换为将在其上显示的设备的 RGB 空间。

还有其他几个定义良好的 RGB 色彩空间。它们都由一个线性矩阵变换和一个非线性变换组成,类似于前面提到的 sRGB 色彩空间。非线性变换可以参数化如下: 参数 s, f, t 和 γ,以及原色和白点,指定了在各种行业中使用的一类 RGB 色彩空间。 下表中列出了几个常见的转换。

18.2.3 LMS 视锥空间

上面讲的视锥信号可以用 CIE XYZ 色彩空间表示。从 XYZ 计算 LMS 信号的矩阵变换,反之亦然: 这种变换被称为 Hunt-Pointer-Estevez 变换,用于颜色自适应变换和颜色外观建模。

18.2.4 CIE 1976 Lab*

颜色对抗空间由一个表示消色差通道(亮度)的通道和两个编码颜色对抗的通道来表征。这些通常是红绿和黄蓝通道。因此,这些颜色对抗通道沿着一个轴编码两个色度,可以有正负两个值。 例如,红-绿通道将红色编码为正值,绿色编码为负值。值 0 编码一种特殊情况:中性,既不是红色也不是绿色。黄-蓝通道的工作原理大致相同。

一个轴是”红绿“,另一个轴是”蓝黄“,最后一个轴是”亮度“么。。。

由于两个色轴上的每一个轴至少有两种颜色被编码,因此不可能编码红色和绿色的混合物。也不可能同时对黄色和蓝色进行编码(???)。虽然这似乎是一个缺点,但众所周知,人类的视觉系统在处理视觉信号的早期就计算出了类似的属性。因此,人类不能同时感知红色和绿色,或者黄色和蓝色(???)。我们没有看到任何类似于红绿色或黄蓝色的东西。 然而,我们能够感知诸如黄-红(橙色)或绿-蓝的混合颜色,因为这些颜色是通过颜色通道编码的。

与计算机图形学最相关的颜色对抗系统是 CIE 1976 Lab* 颜色模型。它是一种感知上或多或少统一的色彩空间,对色差的计算很有用。它也被称为 CIELAB。

CIELAB 的输入是(X, Y, Z)三刺激值以及由已知光源(Xn, Yn, Zn)照射的漫反射白色表面得到的三刺激值。因此,CIELAB 超越了普通的色彩空间,因为它考虑了已知照明背景下的一小块颜色。因此,它可以被看作是一个基本的色彩外观空间。

在 CIELAB 中定义的三个通道是 L* a* 和 b* ,L* 通道编码颜色的亮度,即具有三刺激值(X, Y, Z)的色块的感知反射率。a _和 b _ 是色差通道。XYZ 和 CIELAB 之间的变换由下式给出: 从这个公式可以看出,彩色通道确实依赖于亮度 Y。虽然这在感知上是准确的,但这意味着我们不能在色度图中绘制 a∗ 和 b∗ 的值。亮度 L * 在 0 到 100 之间做归一化,代表黑和白。

虽然 a∗ 和 b∗ 通道没有明确约束,但它们通常在[−128,128]的范围内。 由于 CIELAB 近似是感知线性的,因此可以将两种颜色转换为 CIELAB,然后通过计算它们之间的欧几里得距离来估计感知色差。由此得出以下色差公式: $$\triangle E_{ab}^=[(\triangle L^)^2+(\triangle a^)^2+(\triangle b^)^2]^{0.5}$$ E 代表色彩在感觉上的差异。 最后,CIELAB 与 XYZ 的逆变换:

18.3 人对色彩的感知适应

刚才描述的 CIELAB 色彩空间以三刺激值和从白色漫反射块反射光的三刺激值作为输入。因此,这成为了构建系统的一个良好的起点,在这个系统中,观看环境也被考虑在内。

我们观察物体和图像的环境对我们如何感知这些物体有很大的影响。我们在日常生活中遇到的观看环境的范围非常大,从阳光到星光,从烛光到荧光灯。照明条件不仅照明的发射量在很大的变化范围上变化,而且在发射光的颜色上也有很大的变化。

人类的视觉系统通过一种叫做适应的过程来适应环境中的这些变化。可以区分出三种不同的适应类型,即光适应、暗适应和色度适应。

光适应指的是当我们从一个非常黑暗的环境转移到一个非常明亮的环境时发生的变化。当这种情况发生时,起初我们被光线弄得眼花缭乱,但很快我们就适应了新的情况,并开始区分我们环境中的物体。 暗适应指的是相反的——当我们从一个明亮的环境进入一个黑暗的环境。一开始,我们看到的很少,但经过一段时间后,细节就会开始浮现。 适应黑暗所需的时间通常比适应光明所需的时间长得多。

色度适应指的是我们对光颜色变化的适应能力,我们经常忽略了这种能力。从本质上讲,色度适应是一种生物平衡白平衡手段,就像我们在数码相机上看到的白平衡一样。人类视觉系统有效地将观看条件标准化,以呈现相当一致的视觉体验。因此,我们表现出一定数量的颜色不变性:尽管光照变化,物体反射率似乎相对恒定。

虽然我们能够在很大程度上忽略观看环境的变化,但我们无法完全做到这一点。例如,在阳光明媚的日子里,颜色看起来比在阴天要鲜艳得多。 虽然外观发生了变化,但我们并不认为物体的物理反射性质实际上发生了改变。相反,我们认为照明条件影响了整体的颜色外观。 尽管如此,色彩恒定性确实适用于彩色内容。色度适应允许白色物体在大量的照明条件下呈现白色(人眼觉得它是白色的)

色度适应的计算模型倾向于关注视锥细胞的加性控制机制。一个最简单的模型假设每个视锥细胞都能独立适应它吸收的能量。这意味着不同的视锥细胞类型根据被吸收光的光谱有不同的适应能力。然后,这种适应可以建模为锥细胞信号的自适应和独立的缩放: 其中(La, Ma, Sa)为自适应视锥细胞的信号,α, β, γ 为由观察环境决定的独立增益控制。这种类型的独立适应也被称为 von-Kries 适应。 自适应照明可以由场景中的白色表面测量得到。在理想情况下,这个表面是一个朗伯曲面(理想漫反射表面)。 在数字图像中,自适应照明也可以近似计算为场景的最大三刺激值。用这种方法测量或计算的光是自适应白光,由(Lw, Mw, Sw)给出。Von-Kries 自适应就是在视锥细胞响应空间中通过自适应白光的倒数进行缩放: 在许多情况下,我们感兴趣的是在一个照明下应该产生什么刺激来匹配不同照明下的给定颜色。 例如,如果我们有一块被日光照亮的彩色斑块,我们可能会问自己应该产生什么样的三刺激值来创建一个将被白炽灯照亮的相应色块。

因此,我们感兴趣的是计算相应的颜色,这可以通过连续进行两个颜色自适应计算来实现。 从本质上讲,前面提到的 von-Kries 变换划分出自适应光源——在我们的例子中,首先除以日光照明。随后乘以白炽灯照明,我们就能计算出相应的颜色。若两种光源分别为(Lw,1, Mw,1, Sw,1)和(Lw,2, Mw,2, Sw,2),则对应的颜色(Lc, Mc, Sc)为 存在几种更复杂、因此更精确的色度适应变换。然而,简单的 von-Kries 模型在建模色彩适应方面仍然非常有效,因此可以用来实现数字图像中的白平衡。

在渲染中,色彩适应的重要性在于,我们已经讲观察者所处的环境纳入我们的考虑之中,而不必通过调整场景和重新渲染图像来纠正它。相反,我们可以建模和渲染我们的场景,然后,作为一个图像后处理,来校正观看环境的照明。 然而,为了确保白平衡不会引入伪影,确保图像呈现为浮点格式是很重要的。如果渲染到传统的 8 位图像格式,颜色自适应变换可能会放大量化误差。

18.4 色彩外观

虽然色度学使我们能够以一种与设备无关的方式准确地指定和传达颜色,而色彩适应使我们能够预测照明变化时的颜色匹配,但这些工具仍然不足以描述颜色的实际外观。

为了预测对物体的实际感知,我们需要了解更多关于环境的信息,并将这些信息考虑在内。人类的视觉系统是不断适应环境的,这意味着对颜色的感知会受到这种变化的强烈影响。颜色外观模型考虑到刺激本身的测量,以及观看环境。这意味着所得到的颜色描述与观看条件无关。

从下面的例子可以看出颜色外观建模的重要性。 考虑在 LCD 屏幕上显示的图像。当打印相同的图像并在不同的上下文中查看它时,通常图像看起来会明显不同。颜色外观模型可以用来预测产生准确的跨媒体颜色再现所需的变化。

尽管颜色外观建模为颜色再现提供了重要的工具,但实际实现在实际使用中往往相对复杂和繁琐。可以预见,这种情况可能会随着时间的推移而改变。然而,在那之前,我们把对它们的描述留给更专业的教科书。