0%

Colorimetry (色度学)

色度学概述

颜色的本质是光,光的本质是能量与电磁波。

光的本质是电磁波,并且仅仅是电磁波长长的波谱中的一小段。
在波长380nm到780nm的范围里的电磁波,能量可以被人眼接收。因此在这个意义上讨论时,往往把光称为“可见光”。

孟塞尔颜色系统

孟塞尔颜色系统(Munsell Color System)是色度学透过明度(value)、色相|色调(hue)及色度|饱和度(chroma)三个维度来描述颜色的方法。

色调 Hue

色调就是颜色的“特点”。不管是茜红、胭脂红、珊瑚红、粉红、暗红、棕红、朱砂红,总之,它们都是红的;什么柠檬黄、落日黄、印度黄,反正都是“黄”。

表现在光谱上,可以简单的理解为光谱的“主峰”的位置。

什么叫补色?

我们先假设出有一种光源,所有光谱色的能量都一样多,见下图。

由于它拥有最均衡的能量分布,因此它的颜色是最理想的白色。
也可以说它是没有色调的,因为它没有主波长,完全没有“特点”嘛。

这样的光源被称为等能白光,也叫“CIE标准照明体E”,CIE Illuminant E。它是被CIE定义出来作为理论研究用的,实际生活中这样的光源并不存在。

从E光源的特点来看,标准白是一种最均衡的状态,没有主波长。
一旦有了主波长,就打破了这样的平衡状态,表现出某种可以描述的“特点”(色调),假设它为A。而能够把这种非平衡的状态恢复为平衡状态的光谱,就是A的补色。

换句话说,等能白光的光谱减去光谱A,得到的光谱就是A的补色的光谱。光谱A和A的补色相加,又会回到平衡状态,成为没有“特点”的白光。
如果设平衡状态的等能白光是0,那么A的补色就可以表示为(-A)。A + (-A)=0

注意这里说的是光谱,不是颜料。颜料的补色一加上就变黑色了。光谱叠加是加法色,颜料叠加是减法色。

色相环

孟赛尔把色相大致分为两类。

  1. 典型色:红(R)、黄 (Y)、绿 (G)、 蓝(B)、 紫 (P),一共五种。
  2. 中间色:黄红 (YR)、黄绿 (GY)、蓝绿 (BG)、蓝紫 (PB)、红紫 (RP),也是五种。

这十种颜色构成了基本色相。在基本色相中,又把每一种进一步分解成10种,标上号,从1标到10。比如,红色R被划分为1R、2R、3R……9R、10R。接下来是黄红色,划分为1YR、2YR……一直到10YR。其他颜色以此类推。。。

其中最“正”的颜色,用“5”来标记。比如大红色就是“5R”。

下图是孟赛尔色相环的一个示意图,图中画出了所有标号为“5”和“10”的色相。

色相环最大的作用,并不是把颜色一一罗列出来。而是它直观的把邻近色和互补色有机结合到了一起。
邻近色是长得像的颜色是挨到一起。
互补色是色相环上正对着的颜色。
即穿过色相环的中心点随便画一条线,这条线划到的两个颜色,就是互补色。

明度 Value

顾名思义,明度就是“明亮的程度”。英文按照不同的表色系统,会采用不同的单词,孟赛尔系统叫做Value,LUV体系用Luminance, 一般的可以用Brightness。

明度从黑白灰开始阐述最为清楚。我们可以简单理解其为“明亮的程度”。也就是说,光的能量值的绝对大小。

看图说话最容易理解:

这是一个灰阶图(其实是测试摄像头动态范围的测试卡,ISO-14524)。
简单的说就是从白到黑的12个色块,放在标准灰的背景上,围成一个圈。

进一步,来看看12个色块的反射谱

最上面的反射率最高的线,毫无疑问就是白色色块了。从蓝色光(~400nm)到红色光(~680nm)的反射率都在80%上下。对应的,最下面的就是黑色色块。灰色的,就介于白色和黑色之间。颜色越深明度越低

以绿色为例

从①到⑤,按照通俗的说法,就是颜色依次变“深”了。
但是要表述得严谨,应该描述为:色调/色饱和度保持不变,明度降低。
因为光谱特征完全没变,仅仅是光的能量值依次减小,使得明度依次降低。

那么为什么不能简单的说颜色变“深”了呢?请看下图:

④和⑥都比①的颜色“深”吧?但是这两个颜色深得不一样,一个仅仅是明度下降,一个明度和色饱和度都下降了。所以光说“深”是不严谨的。另外,在明度特别特别低的时候,人眼对色相的辨别能力会下降,极端情况下就直接变黑色了。

饱和度 Chroma

颜色越纯,饱和度越高

这里纯,不是指颜色明亮或者鲜艳,而是颜色的色相可识别性高。——这也是为什么孟赛尔系统把饱和度定义为彩度(Chroma,C)的原因

从最本质的光谱上看,能得到更深入、更直观的理解。
下图的谱线,A和B完全一样,只是B比A能量高。因此B比A明度高,并且,由于A和B的含灰量不同,A的饱和度比B要高。

含灰量

我们已经知道,黑白灰,谱线分布是是一条平直的线。因为他们没有特征波长,所以在现代色彩学里,黑白灰,不!是!彩!色!

颜色,是彩色和消色的总称。只有能叫出红橙黄绿青蓝紫的颜色,才叫彩色(chromatic color)。也只有彩色才有色相、明度和饱和度三种属性。

黑白灰被定义为消色(即非彩色,achromatic color),没有色相属性(或者说色相可以定义为任意一个),饱和度为0,只有明度属性才对它有意义。

怎么理解?

我们来考虑一种极端情况,如果往正常红色颜料里不断添加灰色颜料,直到灰色占了绝大部分,原来的红色就变得越来越难以识别,直到颜料完全变成灰色。
这个过程中,灰色的不断增加,对识别原本颜色的干扰就不断增强,颜色的纯度就越低,饱和度也就下降了。

再举个非极端的例子,如下图的A和B,他们的光谱分布里既有彩色的能量成分,也有消色的能量成分。B的消色成分更多,因此B的彩色部分能量占的比例更小,相应的就更难识别其颜色特征(色相),因此B的饱和度比A的要低。

简言之,颜色的含灰量(含消色的量)越大,饱和度越小。

如果把A的消色成分完全去掉,就变成C的样子,这样饱和度又进一步增加了。
这就是为什么采用铜版纸的杂志,颜色比普通纸张更鲜艳的原因。

因为物体光滑的表面可以减少表面的漫反射,从而使得颜色的消色成分减少,所以光滑的物体和粗糙表面的物体相比,颜色更鲜艳。印刷品采用光滑的铜版纸、进行上光/覆膜处理,都是为了增加纸张表面的光滑度,从而提高颜色饱和度。

那么饱和度还可以再提高吗?可以滴!C的谱线变窄,变成D的样子,使得特征波长更加显著,颜色更加“纯粹”,从而饱和度更高。

目前谱线最窄的光是激光,谱线宽度达到nm量级轻轻松松。所以市面上有用激光做光源的投影电视,号称颜色鲜艳啊色域无人比肩啊,这个的确是没说假话

最后总结一下,饱和度高=颜色纯=颜色的色相可识别性高

从光谱上来说,饱和度的概念,是描述光谱分布的相对特征的概念,需要看两点:

  1. 特征波长自身的单色性强不强(光谱选择性)
  2. 消色的干扰性强不强(含灰量)

色彩空间基础

三原色

大部分人类的视网膜上有三种感知颜色的感光细胞,叫做视锥细胞,分别对不同波长的光线敏感,称为 L/M/S 型细胞。三种视锥细胞最敏感的波长分别是橙红色(长波,Long),绿色(中波,Medium),蓝色(短波,Short)。这三种视锥细胞的归一化感光曲线如下图所示。

可以看到 L 型视锥细胞与 M 型视锥细胞的感光曲线差别很小,实际上这两种视锥细胞起源于一次基因变异,在这之前人类可都是红绿色盲呢,多亏这个基因变异,让人类可以看到更加多彩的世界。

人类眼睛对不同颜色光线混合的反应还是 线性 的。根据 格拉斯曼定律(Grassmann’s Law),两束不同颜色的光 C1C_1C2C_2,假设某个视锥细胞对他们的反应分别是 r1r_1r2r_2,现在将他们按照一个比例混合,得到第三种颜色 C3=αC1+βC2C_3 = \alpha C_1 + \beta C_2,那么视锥细胞对这个混合颜色的反应也将是前两个反应的线性叠加 r3=αr1+βr2r_3 = \alpha r_1 + \beta r_2

格拉斯曼定律是一个实验规律,并没有物理或者生物学上的依据。然而这个规律大大简化了我们对人类彩色视觉系统的建模,并且给我们使用线性代数理论分析人类彩色视觉系统提供了一个前提和基础。

色匹配函数

只要按照 (r,g,b)(r,g,b) 的分量来混合 (R,G,B)(R,G,B) 三种颜色的光,就可以得到 CC 这个颜色的光。于是在这一系列实验里,科学家们把左边的颜色按着光谱顺序,挨个测试了一遍,得到了纯光谱色的混合叠加的数据,这就是 色匹配函数(Color Matching Function) ,并且在这个基准下定义的色彩空间,就是 CIE RGB 色彩空间

把一个屏幕用不透光的挡板分割成两个区域,左边照射某个被测试的颜色的光线,这里记为CC(以下用大写字母表明颜色,用小写字母表明分量大小),右边同时用三种颜色的光同时照射,这里记为RRGGBB。然后,调节右边三种颜色光源的强度,直到左右两边的颜色看上去一样为止。假设这个时候三种颜色的光源强度分别为rrggbb,那么根据光色叠加的线性性质,我们可以写出C=rR+gG+bBC = rR + gG + bB

下图是 CIE RGB 的色匹配函数曲线。浅色的细线代表实验中不同参与者个人的色匹配函数曲线,中间深色的粗线代表数据的平均值。

曲线上出现了负数,这是怎么回事?

左边是被测试的光色,右边是可调节的三色光的混合。如果碰到一种情况,右边三色光无论如何调节比例,都不能混合出左边的颜色,比如某种颜色的光强度已经减小为 0 了,然而看趋势还需要继续减小才能与左边的光色相匹配,怎么办?这时候需要往左边的光色中混入三色光中的一种或者几种,继续调节,直到两边的颜色匹配。在左边(被测试)的色光中添加,那就是相当于在右边的混合光中减去,这就导致了色匹配函数曲线上出现了负数。实际上,这相当于就是光线的「减法」了。

因为有部分出现了负数,在使用和计算上都有不方便,因此就对这个匹配函数进行了一下线性变换,变换到一个所有分量都是正的空间中。变换后的色彩空间就是 CIE XYZ 色彩空间

CIE RGB 色彩空间和 CIE XYZ 色彩空间是完全等价的,两者只是差了一个线性变换。由于允许「减法」的存在,因此 CIE RGB 空间是能够表示所有颜色的;同样的,CIE XYZ 空间也能。

自然界本身是没有「颜色」这个属性的,只有对不同波长光线的反射率/透过率,到达人眼中的,显然是一个连续的光谱分布函数。数学上,这是一个无穷维的函数空间(巴拿赫空间)。而人眼内的三种视锥细胞,它们的感光特性曲线相当于是在这个无穷维的函数空间中建立了三个基底。任何一个光谱分布进来,三种视锥细胞被激发。由于色视觉响应的线性性,这一过程相当于光谱分布函数与三个基底做内积,或者说,「投影」到这三个基底上。

从这个观点看,
人类的色视觉,是相当于在自然界所有颜色的无穷维函数空间中取了一个三维的投影。

设备相关的 RGB 色彩空间

由于 CIE XYZ 空间是一个很方便的线性空间,与具体设备无关,因此常用来做各种颜色空间转换的中间媒介。设想某个颜色的光,经过色匹配函数的计算,得到了三个 XYZ 的值,如果直接将这三个值作为 RGB 颜色显示到屏幕上,显然是不对的。我们必须把 XYZ 的值转换到屏幕的 RGB 空间中的值。

[RlinearGlinearBlinear]=M[XYZ]\begin{bmatrix}R_{linear} \\ G_{linear} \\ B_{linear}\end{bmatrix} = M \begin{bmatrix}X \\ Y \\ Z\end{bmatrix}

这里下标 linear 代表线性空间,MM 是转换矩阵。得到线性 RGB 空间的表达之后,还需要经过 gamma 校正,才是最终在屏幕上显示的 RGB 的值。一般的 gamma 校正过程为 C=Clinear1γC = C_{linear}^{\frac{1}\gamma},其中 CC 代表 RGB 的某个分量,γ\gamma值通常为 2.2。

对于 RGB 色彩空间来说,关键点在于两个:

  1. 如何选择三个作为基底的颜色;
  2. 如何定义白色。

一旦选好这两个关键参数,那么从 CIE XYZ 空间到设备的 RGB 空间的转换就完全确定了。我们平时常说的 sRGB 空间和 Adobe RGB 空间,他们的区别就在于这两个关键参数的定义不同。常用的的 RGB 空间的转换矩阵如下表:

不同的 RGB 空间能表示的范围如下图所示

可以看到,不同的 RGB 空间所能表示的颜色范围是不一样的,并且我们可以推断出,即使是同样的 RGB 分量,在不同的 RGB 空间中所代表的颜色也是不一样的。所以我们在描述一个 RGB 颜色的时候,不仅需要描述它的 RGB 三个分量,还要说明是在哪个空间,这就是 ICC 文件的作用。

很多数码相机都可以设置色彩空间,常见的有 sRGB 和 Adobe RGB,从上面的图中我们可以看到, Adobe RGB 所能表达的色彩比 sRGB 要丰富很多。然而常见的网络环境下图片的色彩空间是 sRGB,有很多浏览器不能正确地解析图片自带的色彩空间说明,默认按照 sRGB 来进行解析。如果使用相机直出的 JPG 文件直接上传,或者说在后期处理过程中没有进行色彩空间转换,保留了相机设置的 Adobe RGB 空间,那么在浏览器中看到的图片很可能与 Photoshop 中看到的不一样。浏览器很可能会将一张 Adobe RGB 空间中的图片解释为 sRGB 空间下的图片,引起颜色偏差。

色彩空间

  1. RGB
    电脑/手机/平板采用的RGB三原色加法色形成的色空间,适用于CG。
  2. CMYK
    是印刷油墨CMYK四色减法色形成的色空间,适用于印刷系统。
  3. HSB
    在RGB的基础上,根据颜色三属性的理论推导出来的色空间,最符合人眼的直觉。
  4. Lab
    一个内部转换用的色空间,RGB色转换为CMYK色时,需要先转换为Lab色,再转为CMYK色。反之亦然。

RGB、CMYK两个色空间,是由显色手段决定的,受到显示器或者印刷手段的材料和工艺的物理限制。

完全不改变色相,只改变明度或者饱和度的操作,只有HSB能做到
RGB、CMYK都是牵一发动全身的节奏。
Lab比较特别,可以固定L(明度),但不能固定色相和饱和度。

色域与色空间

色空间,可以理解为,以色相、饱和度、明度为三维坐标轴的空间。色域是这个空间中的某一个二维截面。先看下图的HSV部分。

图e,即为HSV色彩空间的3D模型,一个圆柱体。分布了RGB系统能形成的所有颜色。
图f,是饱和度S为100%的色域,可以视为圆柱体的侧面的二维展开。
图g,是明度B(≈HSV系统的V)为50%时的圆柱体横截面,包括了B=50%的所有不同饱和度和纯度的颜色,也就是B=50%时的色域。
图h,色相H=0°/180°的纵切面。只看H=0°这一半的话,是不是很眼熟?就是PS界面里面的矩形色域啦~

如果没有特别交代,色域一般指某一个呈色系统形成的色空间里,明度最大的横截面。

PS、GIMP等,采用的是HSB色空间,另外一些软件会采用上图左边的HSL色空间。比如Windows的Office系列。

人眼能识别的低饱和度+高明度的颜色是非常丰富的,这是因为人眼对明度的变化非常敏感,相比之下,对饱和度的变化就不怎么敏感了。

观察HSL系统的图d,和HSB系统的图h,低饱和度+高明度的颜色,在HSL系统里占据的面积更大,更方便选择

HSB系统里,低饱和度+高明度的颜色面积太小。为了增加选择的精细度,PS提供了针对HSB三个参数分别进行精细调整的滑块操作。这就增加了UI的复杂程度。我们可以直观的看到,Office的拾色器就比PS的拾色器界面简单很多,对非专业人士来说,更加易用。

所以HSL和HSB也算是各有千秋,只是当我们看到HSL系统的时候,饱和度的定义不能按照平时的概念来理解。

RGB 显色系统

RGB色光加法色原理

人眼的视网膜有两种感光细胞,可以感应颜色细节的椎体细胞(明视觉),和仅仅感应明暗的杆体细胞(暗视觉)。

椎体细胞又按含有的视锥色素的不同,分为三种:感红细胞,感绿细胞,感蓝细胞。

当两种或两种以上的色光,同时照进人的眼睛,这三种感色细胞就会受到相应的信号刺激,从而在大脑中产生一种综合的颜色感觉。

这种由色光混合,呈现颜色的办法,就叫做色光加法色。

实践表明,(等量的)

  • 红色+绿色=黄色
  • 红色+蓝色=紫红色
  • 绿色+蓝色=青色
  • 红色+绿色+蓝色=白色

而改变他们之间的配比,还可以得到更加丰富的色彩。

人眼的分辨率是有限的,约1’。只要不同的色块,对人眼形成的视角小于1’,并列色块的颜色就会在视觉中产生混合,形成新颜色。
这就是现代显色系统——显示器、印刷品、打印系统——的工作原理。

色度图
三原色

我们已经知道,颜色是光形成的。任何一种颜色,只要有光谱数据,就能用公式算出其在色度图上的坐标。也就是所有地球上能实现的颜色,都可以通过色品图的坐标标注出来,不会超过这个范围。

色度图是一个二维坐标而色空间是一个三维空间,所以色度图是不包含明度信息的。实际上,色度图的坐标,标注的是RGB三原色之间的比例,也就是相对大小,不是绝对大小。白色和黑色对它来说坐标一样,所有低明度的颜色在色度图上都没有,这一点要注意。

色度图中间,是饱和度为0的消色,越靠外的颜色饱和度越高,最后终止到光谱轨迹和紫红色的谱外光轨迹为止

色度图上任意两点的色光混合,新生成的色光,其坐标一定在两点之间的连线上。哪一边的信号强度大,就更靠近那一边

我们已经知道,G和B形成的混合色,颜色坐标会在G和B的连线上。反过来说,G和B的连线上所有的颜色,都可以由G和B混合实现。

那么,如果再添加一个R光,就会在色度图上形成一个三角形对不对?这个三角形里的所有的颜色,都可以通过RGB三色的混合而形成。这不就是三原色加法色的原理?

这个三角形里的所有颜色,就是这个RGB显示系统能得到的所有颜色,也就是我们说的色域。这个三角形面积越大,能显示的颜色也就越多。因此,理论上说,RGB的坐标就应该越靠外越好,也就是RGB三原色的饱和度越高越好。

但由于材料物理特性的限制,饱和度提高,亮度就会相应的下降。想要亮度不下降,饱和度还要高,就得——加钱。所以显示器的色域是综合考虑饱和度亮度成本的一个折中方案。还有一种扩大色域的方案,就是增加一个原色,从三角形变成四边形。Sharp就在的他家的电视上推出了“四色技术”,在RGB的基础上增加了黄色。

另外,可不可以不用RGB做三原色呢?

当然可以,色度图上其实可以另选出3个不在一条直线上的点,只要能形成一个三角形,而这个三角形还可以把白色区域包含进去,就可以做三原色,参见下图。


  
CIE色度图的中心有一个类似椭圆的区域,就是白色/近白色的区域。

三原色覆盖的范围,一定要大于这个区域,否则某两个原色相加,可能会出现白色,或者是混合出来的新颜色饱和度太低没法看。。。

大家可以在图上比划一下,虽然也有其他的三原色可以选用(如黑色虚线所示),但由于白色区域的形状所限制,是不是仍然是RGB三原色覆盖的范围更有大、更有可能得到饱和度更大的混合色呢?

所以从早期的笨重无比的CRT电视,到等离子电视,到液晶显示屏,到彩色电子纸屏幕,所有采用色光加法色的系统,都用RGB做三原色,就是因为RGB可以实现色域的最大化。

色相环

在色度图里面画一个圈儿,是不是就是色相环了?
色相环可以视为一个简化版的色度图。

补色

连接颜色R和白色E,画一条直线,青色正好在这条直线上。那么也可以说,C和R混合,可以形成白色,所以C和R是互补色。这也就是为什么我们说色相环上相对180°的颜色是互补色的原因。

  
由于白色其实是一片很大的区域,而不是一个点,所以互补色其实也不是唯一的,也是一片很大区域。

白色其实是一种非常非常诡异的颜色,同样是白色,但色差却可以很大!你们平时注意观察一下,几乎没有一模一样的白

色差

先说说RGB系统自己的色差来源。RGB三原色并不是唯一的。每一种颜色其实在色度图上都不是一个点,而是一个面。所以RGB的坐标其实有无数种选法。

事实上,由于材料工艺的限制,每一台显示器的RGB三原色坐标值都不一样!哪怕同样的品牌,同样的工厂,同样的原料,同样的产品线,做出来的东西,都不一样!为什么呢?这个就跟种萝卜似的,没有哪两个萝卜长出来能一模一样,就是那么任性。

三原色都不一样,色域也就不一样了,连带着配出来的混合色当然也不一样了。

厂家顶多也只能尽量缩小色差,控制色差在可接受的范围之内,办法无外乎就是,加钱——就是前期控制原料,后期统一校准什么的。但是这个也只能限于同一个品牌的情况下。不是同一个品牌的?你管的着么?

那么有没有行业标准?有,比如常用的行业标准NTSC(电视)和sRGB(电脑)

但是!现在的常用的LCD显示器,色域范围一般都比NTSC的标准小,甚至比sRGB都小。比如你们经常看到的,某某牌子的显示屏色域达到85% 啊之类的,就是指它的色域占某个标准(比如sRGB)的比值。

只有近两年,技术进步、市场成熟之后,某些品牌的中高端显示器能达到100%的NTSC色域,甚至更高。不过,目前大部分显示器连全面覆盖NTSC的标准都做不到,更别提控制色差了!

再来说说RGB系统和CMYK系统之间的色差
先来看一下CMYK系统和sRGB系统的在色度图上的色域。

从色度图上可以直观的看出来,CMYK是一个多边形,和sRGB的三角形,覆盖的区域就是不一样!无论怎么折腾都不可能完全一样!两者不重合的部分,从原理上讲,就是不可能不带色差的互换显示的!

sRGB系统的颜色,是用sRGB定义的RGB做颜色混合。然后用其RGB的比例系数来给色域范围内的颜色一一标号。那么问题来了,超出了自己色域范围的颜色,怎么标号?

所以,当你用PS做的图,不仅仅是在RGB系统(电脑、手机)上看,而且需要用CMYK系统(打印机、印刷厂)出实物的时候,就要特别注意这一点,不要使用超出CMYK色域范围的颜色。而有些CMYK系统能生成的颜色在PS里连选都没法选。。。

sRGB是当年微软领头定义的、主要给电脑(特别是浏览网页)用的标准,就没怎么考虑印刷的问题。现在遇到这个RGB和CMYK系统标号不能匹配的问题怎么办呢?

我们也已经知道了,RGB系统其实可以有无数种RGB的选择。我就选一个饱和度很高很高的RGB,把CMYK整个色域框进去,不就能给所有的CMYK系统颜色标号了吗?

啥?物理上很难实现?管他呢!我只是要给颜色标个号而已~

这就是后来的Adobe RGB标准,甚至色域更大的Adobe Wide gamut RGB标准的来历。支持这种宽色域的显示器,就是所谓的广色域显示器,就可以实现在电脑上进行印刷的“软打样”。

至于为什么CMYK系统色域是多边形,则是因为CMYK系统是减法色。它和加法色最大的区别,就是减法色两色混合后的新颜色,坐标不一定在两点之间的连线上,会拐弯。

24位色

24位色,就是RGB通过不同比例配置出来的混合色。

让我们先从最简单的情况说起,如果RGB三原色,都只有ON/OFF两种状态,那么生成的就是2×2×2=8种颜色。

以R和G的混合色为例。混合色只有1:1 这一种比例,所以R和G的连线上只有一种新颜色。在色度图上的位置,就是RGB三色和白色的的连线的交点。这样的混合色也被称为中间色,因为位置在原色的中间。

  
进一步复杂化,如果RGB有3种状态,OFF/LOW/HIGH,那么可以生成3×3×3=27种颜色。

R和G的混合色,有3种比例:1:1,1:2,2:1。所以R和G的连线上有三个中间色。这些新的“点”使得色度图上生成的网络更加密集。

RGB三原色在开和关之间能形成的中间状态越多,混合色的比例种类就越丰富,这个“蜘蛛网”也就越密,在色度图上能形成的新颜色自然就越多了。

因此,为了得到足够多的中间色,RGB系统从一开始的2位色,到4位色,到8位色,不停的向上升级,一直到24位色。

这个N位色的N,由RGB三种原色可以控制的状态数(以二进制的位阶计数)的总和来决定。所以24位色,也就是R、G、B这三种颜色,在计算机内部分别分配了8位数据深度,可以有2^8=256种状态。

24位,指的是每一个像素的颜色信息在计算机内存里占用的数据深度。而16M色,则是指它所能形成的颜色的总数。是同一个东西,只是描述的角度不同。

知道了RGB之间的比例关系,也就知道了混合色的位置,从而就可以知道新颜色到底是什么颜色了。

比如R:G:B为127:75:42,在计算机里就可以记为十六进制的#7F4B2A。这样,有了这个坐标值,就可以在另一台计算机里重新调用这个值,实现颜色的复现。这就是前面说的给颜色做标号的意思。

一般而言,人眼对色相的分辨能力在180种左右。
对明度的辨别力比较高,能分辨约600种明暗层次。
不同的颜色的饱和度识别能力是不一样的,红色能识别约25级,而黄色只能识别4级。按饱和度平均识别10级算,人眼能识别的颜色数为180×600×10=1080000种。

32位色

RGB显色系统里,一个像素实际上是由3个(RGB)子像素构成的。这是RGB系统能实现不同颜色的基础。

因此,一个像素的数据,实际上包含了RGB三个颜色的数据。
一幅分辨率为N×M的图像,在计算机里是一个N×3(行)×M(列)的矩形数据列表。

举个例子。
一幅分辨率为7×7的图像,在PS里面(RGB模式下)是这样被存储的:

一幅画有三个表。

第一个表存储所有像素的红色信息(R通道)
第二个表存储绿色的信息(G通道)
最后一个表存储蓝色的信息(B通道)。

所以,通道,就是数据表!这个信号大小并不像Excel一样,显示成数据,而是更加直观的显示成了灰阶图像:

  • 0代表无,黑色;
  • 255代表信号满格,白色;
  • 0~255之间,灰色。
    隐隐约约隐隐约约有一起去··········
    因此也可以说,通道就是一副灰阶图像
8|16|32位/通道

为什么PS要有16位/通道和32位/通道的颜色深度设置?

16位/通道和32位/通道这些额外增加的数据深度,以及Alpha通道,都是为了增加计算机计算的速度和精度。

只是用PS画原稿,8位深度完全够用。修照片,要用16位深度。处理HDR图片,用32位深度。

注意32位色、32位/通道的区别

32位色:一个是指每个像素数据有4个通道(RGB+Alpha),每个通道有8位。
32位/通道:指每个通道有32位数据,单个通道的数据量是24位色的4倍。

HDR

HDR简单的说,就是要解决逆光拍照的技术。

人的眼睛对亮度的适应性是非常非常厉害的。自然界的照度(可以简单理解为平时我们说的亮度),变化范围比你能感觉到的要大的多。从月光下的1个lx以下,到夏天大太阳下的20K lx以上,最大值和最小值能相差几十万倍!

人眼对此表示,自动适配毫无压力!这个就叫做动态范围大。

目前,地球上的所有相机,不管是胶片的还是数码的,不管是CCD还是CMOS,也不过多么高级,跟人眼比动态范围,那都只有抱大腿的份!

所以,照相的时候,如果取景器里同时有高亮的物体(夕阳),又有低亮度的物体(逆光的人),相机就只能将就其中一个。顾得上夕阳,就顾不上人。人像的曝光值合适了,夕阳又会过曝。

也不一定非要是逆光,只要照片的高亮部分和低亮部分亮度差异太大,相机的曝光设置就会出现熊掌和鱼翅不能兼得的问题。

与硬件实现的高成本不同,软件实现HDR原理很简单。

举个例子。夕阳下的街道,因为街道被高楼挡住了阳光,所以正常曝光的照片(图①),为了兼顾天空和街道,天空有点太亮了,街道又太黑。

于是,我们可以把曝光量调高一档,专门拍街道,获得阴影部分的细节(图②)。再把曝光量调低一档,得到天空的正确曝光图片(图③)。得到这三张照片后,用PS合并一下,把最佳状态的天空和街道拼合到一张照片上,Bingo!

那么它和32-bpc又有什么关系呢?

我们来观察一下图②的天空部分。由于过曝,画面已经一片白了。这个白,用PS的拾色器查看一下,是8-bpc下的纯白色(R 255,G 255,B 255),就是说信号已经满格了。但如果用眼睛看,天空事实上是很漂亮的渐变颜色。也就是说,天空有很多细节信息超出了图②能显示的范围。

软件解决HDR的办法,就是把所有细节信息收集起来,比如街道的细节、天空的细节,放到同一个筐里,然后挑选出我们需要的部分,拼成一幅完美的图像。

这个筐,就得足够大,容量至少得大于图① + 图② + 图③。它不但要保存从0到255之间的、能显示出来的信息,还要保存超出显示范围的高亮信息,以供后期处理。

32-bpc就是为此而生

它采用了浮点型的数据类型,RGB的0到255的变化被0到1取代,并且最高可以到20。也就是说,32-bpc图像的亮度可以是8-bpc图像的20倍,虽然在显示器上看可能都是一片白,但其实它在白色的背后还保存了很多细节。

CMYK系统

顺着RGB加法色的思路,能不能用RGB来做减法色的三原色呢?
红色的颜料加到绿色的颜料里——变黑了。
在PS里,用“正片叠底”模式,叠加两个图层,也可以模拟出颜料混合的效果。

色光加法色中,红绿蓝光混合,就是简单的光谱相加,生成白光:

但在减法色中,物体是靠吸收一部分光、再反射剩下的光来呈色的。
比如绿色的叶子,其实是因为除了绿色,其它的光都被叶绿素“吃”掉了。
同理,红色的颜料,是因为除了红色,其它的光都被“吃掉”。

当红颜料和绿颜料相加之后。。。红颜料吃掉绿光,绿颜料吃掉红光,oh no,什么都没剩下。。。不就是一片黑了?

所以RGB不能做为减法色的三原色!理论上,减法色的原色应该是这样的颜色:

光谱分布上,不能太宽,否则色调难以分辨。
但也不能太窄,否则光谱的重叠部分太小,造成两个原色一叠加,什么光都不剩下。

在反复实践中,确定下来的减法色三原色光谱是这样的:

这就是现在打印、印刷用的三原色——CMY。

并且,从光谱上也能看到,青色C正好吸收了红色R,因此也被称为减红色。品红M吸收了绿色(减绿色),黄色吸收了蓝色G(减蓝色)。减法三原色和加法三原色有着非常神奇的互补关系。

再来看一下色料混合后的情况。

当青色C和品红M混合,C从照射的白光中吸收红光,M从中吸收绿光,因此白光中只有蓝色剩下了,即C+M=W-R-G=B。

大家应该也注意到了,加法色和减法色,有一个非常显著的区别:

当三原色都混合在一起的时候,如果是色光相加,光的能量会越来越多,颜色就会越来越亮(明度升高),最后变成白色W。而如果是色料相加,随着颜料的不断混合,被吸收的光越来越多,因此光的能量越来越少,新生成的颜色明度会越来越低,CMY混合后,最后剩下黑色K。

但是!以上仅仅是理论情况!实际使用的CMY油墨由于种种限制,并不是一条理想曲线。由于油墨和墨粉需要很多颜色以外的物理特性,比如:纸张上的附着性、尽快干燥、抗褪色,以及不能太贵!这些性能都要靠颜色的纯度来换取。

Lab 色空间

在三色学说诞生后不久,德国物理学家赫林(E.Hering)提出了对立颜色学说,也叫做四色学说:

  1. 假设视网膜中有三对视素:白—黑视素、红—绿视素、黄—蓝视素;
  2. 当没有光线刺激的时候,视素对视觉神经不提供刺激,即信号为0值;
  3. 当有光线刺激的时候,以红-绿视素为例,红光起破坏作用(负值),绿光起建设作用(正值);
    红光会消耗红-绿视素,在信号上形成负值;当红光消失后,神经信号为了恢复到0值,就需要补充正值,就是我们看到的绿色的残像;等过一会儿,信号平复到0值,残像就自然消失了;
  4. 即,视素的代谢过程是一种相互关联的、对立的过程:正 (建设)vs. 负(破坏);
  5. 因为各种颜色都有一定的明度,所以每一颜色不仅影响其本身视素的活动,而且也影响白一黑视素的活动;所以色盲患者还会有黑白灰的明度感觉,而红绿色盲是由于红-绿视素受损引起的,因此红绿色盲同时发生;

这个理论可以很好的解释人眼为什么对黄色敏感,以及负后像现象、色盲现象。

而且,它还能很好的解释为什么红绿蓝光混合能产生白光:当红绿蓝光达到一定的比例,就对红-绿视素、黄-蓝视素的刺激形成了平衡,因此只有黑-白视素被激活,产生黑白灰的感觉,而不会产生“有颜色”的感觉。

不过,对立学说却不能解释为什么能用RGB色光来产生所有的光谱色(不需要黄色)。所以这两个理论PK了很长时间,谁也没服谁。

到了近代,有了更多的实验发现以后,科学家终于把这两个理论统一到了一起,就是现在主流的阶段学说:

简单的说,就是大脑识别颜色分为两个阶段:

  1. 第一阶段:人眼里的红绿蓝视觉细胞识别RGB信号;
  2. 第二阶段:大脑并不直接接收这个RGB信号,而是由神经网络对它们重新编码,形成黑-白,红-绿,黄-蓝三个新通道的信号,再进行颜色识别;

Lab是一种完全不直观的颜色空间!并且,Lab还很年轻,1976年才诞生,进入大众视野的时间就更加短暂。Lab是建立在人眼对颜色的二次编码原理上的,即:

  1. 第一阶段:人眼里的RGB视觉细胞识别RGB信号;
  2. 第二阶段:神经网络对RGB信号重新编码,形成黑-白,红-绿,黄-蓝三个新通道的信号,供大脑进行颜色识别;
  3. 黑-白通道被命名为L通道,取值范围:0~255;
  4. 红-绿通道命名为a通道,取值范围-127~128;
  5. 黄-蓝通道命名为b通道,取值范围-127~128;

直观一点看,Lab颜色空间是一个球形,见下图。

为了方便描述,把它视为一个地球仪。
那么南极点就是最暗的黑色,北极点就是最亮的白色。亮度L沿着南极到北极的轴心线,从暗到亮变化。沿着赤道把地球仪切开,切出来的圆就是色域最大、饱和度最高的颜色。

a轴和b轴分别是红-绿色和黄-蓝色。
A为正值的时候,是红色。B为正值的时候为黄色。

这样,一个圆形就被分为四个象限。第一象限是红色和黄色的过渡,第二象限是黄色和绿色的过渡。以此类推。

如果用极坐标的角度来看的话,色调就随着极角H的变化而变化,饱和度就随着极径C的变大而变大(这就是在Lab的基础上演变来的LCH色空间)。

当a和b为0的时候,就是理论上的中性灰。所谓中性灰,就意味着这个灰色既不偏黄,也不偏蓝,既不偏红,也不偏绿。

从图上可以看到,a、b通道的绝对值越大,颜色的饱和度就越大。越靠近中点,颜色饱和度越小,越接近灰色。并且,真正的中性灰其实范围是很小的,大量的灰色都是所谓的暖灰、冷灰等非中性灰(带一点颜色的灰色)。

另外需要特别注意的是,RGB的纯红色和纯绿色,并不完全等同于a通道的红色和绿色。
Lab里面的红色更接近洋红,绿色更接近青色。
也就是说,Lab里面的红色和绿色不是特别“正”。Lab里面的黄色和蓝色倒是比较“正”的,但它的“纯蓝色”(a: 0, b: -128)也不完全等同于RGB里的纯蓝色(R: 0, G:0, B: 255)。

并且,L为0的时候,也不完全等同于黑色,一些红色和绿色也可以L为0。
这一点跟HSB略有不同。在HSB色空间里,B为0的时候就一定是黑色了。这是由它们各自不同的坐标算法决定的。

Lab 用来取色不太直观,用来给照片修色、校色(颜色管理)有它独特的优势

  1. 关于照片修色:

    • 校准色温(b黄-蓝通道);
    • 改变季节(a红-绿通道);
    • 增加a、b通道的对比度,给一些颜色比较平淡的照片增添“活力”(在Lab模式下修改曲线,可以轻松实现让蓝天更蓝,绿树更绿,红花更红)
  2. 关于校色,也就是所谓的颜色管理。它的目的主要是控制色差。

Lab作为RGB和CMYK之间的中转站,在颜色管理中起着重要的作用。

要想搞懂颜色管理,就一定要理解Lab的中转站工作原理。因为所谓的颜色管理,落实到具体的操作上,其实就是对Lab色和RGB色、CMYK色之间的映射关系进行管理。

之前我们说了,PS里把RGB色转换为CMYK色的时候,会先把RGB转换为Lab色,再从Lab色转换为CMYK色。反过来,CMYK色转换为RGB色的时候,也会在lab这里过一遍。Lab像一个中间桥梁一样,连接着两个不同的颜色空间。

为什么不直接转?为啥要搞得这么麻烦?

  1. RGB和CMYK色的色号,其实是一系列对物理系统的操作指令,只对“怎么做”负责,并不对最后的颜色负责。
  2. Lab可以标注的颜色,比RGB和CMYK多很多很多很多!色域更大,精细度更高。

举个极端点的例子,CMYK的(100,0,0,0),意思是青色印满,其他颜色不印,所以应该是饱和度最高的青色。但如果印刷机的油墨上错了,该用C的时候用成了K,那么实际印刷出来的(100,0,0,0)就是黑色而不是青色。而这样的错误,光靠检查CMYK色的色号是检查不出来的。

所以,光知道CMYK的色号,并不能确定最后印出来的颜色是什么样,还取决于印刷机、纸张的状态。RGB色同理。

Lab色,是实实在在的颜色,跟实现的设备无关。它针对自然界所有存在的颜色进行的编码,1就是1,2就是2。知道Lab色的色坐标,就一定能确定到底是什么颜色。“虚”的颜色,必须落到“实”处,才能进行相互转换。也就是先确定印刷机的状态,把CMYK色在Lab色空间中标注出来。再确定显示器的状态,把RGB色在Lab色空间中标注出来,它们才能相互转换。颜色管理里后缀为ICC的文件,就是规定这个转换关系的特性文件。

当我要发海报给印厂印刷的时候,先要根据我的显示器的状态(色域、Gamma曲线、白点坐标),把我的电脑上的RGB色转换到Lab空间里。再根据印厂的具体情况,确定Lab色和印厂的CMYK色的对应关系,从而找到适合印刷海报的CMYK色。

如果事先没有准备好ICC文件,PS就会找一个默认的标准来用,比如RGB色就采用sRGB标准,CMYK色就采用Japan Color 2001 Coated。

调色特征

色温

色温是由英国物理学家开尔文所提出来,并以K作为此物理常量的单位,用于定义光源颜色的基础物理量

他加热一块碳(物理黑体),在低温的时候碳呈红(黄)色,随着温度的升高碳有红变白再变成浅蓝色

就色彩而言,蓝色一直被认为是“冷色”,红色是“暖色”;
就色温而言,颜色越蓝的色温会越高,反之颜色越黄的色温会越低。

我们可以通过为相机设置一个机内色温值来实现白平衡的效果,当机内色温值与外界一致时,相机就能正确的表现白色,例如现在外界色温是 4000K,我们将机内色温也设置为 4000K 时,白色就能被相机还原为白色,如果我们把机内色温值设置为 5000K 时,这时候画面就会偏暖,这是因为当我们把机内色温值设置为 5000K 时,机器就认为外界的色温是偏蓝色的,因此需要增加黄色来中和蓝色,以实现还原白色的效果,但是外界实际的色温是 4000K,因此这时候画面就会偏暖了。同理,如果外界色温是 4000K,当我们把机内色温值设置为 3000K 时,画面就会偏冷。

当我们提高色温的数值时,画面就会偏暖(黄色),当我们降低色温的数值时,画面就会偏冷(蓝色)。

画面偏蓝的时候,我们可以提高色温值,为画面加入暖色(黄色),从而实现白平衡的效果。
画面偏黄的时候,我们可以降低色温值,为画面加入冷色(蓝色),从而实现白平衡的效果。

与色调工具结合使用

色温工具可以为画面加入黄色与蓝色。
色调工具则可以为画面加入绿色和洋红色(品红色)。
这两个工具通常结合起来使用,综合调整画面的白平衡和渲染画面的色调。

  • 降低色调工具的值时,可以为画面加入绿色,
  • 提高色调工具的值时,可以为画面加入洋红色。

白平衡

白平衡是“白色的平衡”的简称,英文缩写WB(White Balance)。
简单理解白平衡就是在环境光下,让白色依旧是白色。

眼睛是一个适应性相当强的感知器官,在不同色温的光线下适应后,看到的白色依旧是白色;照相机的感光元件并没有这么强的适应性,它只能在摄影师的操作下更改设置来对环境光进行平衡。

白平衡图标和预设色温表,由上至下为:自动白平衡、阴影、阴天、闪光灯、日光、白色荧光灯、钨丝灯、色温调节

  1. 自动白平衡是根据相机自动感知光颜色的不同而经由相机内置计算机处理后显示的结果,同一环境下也可能因为变化的光或不同的位置而产生不一样的效果。
  2. 可以使用白平衡来调节色温的不同以达到特定的效果,比如使用钨丝灯白平衡拍摄蓝调人像作品等等。
  3. 自动白平衡是最不稳定的一种,它会根据光的变化立即产生调整。

下图是不同光源下不同白平衡显示的示例。这很直观的展示了相机预设白平衡的颜色。

直方图

直方图横坐标表示色阶(灰度),纵坐标表示像素数量。
直方图从左到右是从暗到亮。可以划分为包括五个子区域。

黑色色阶(Blacks)、阴影(Shadows)、曝光(Exposure)、高光(Highlights)、白色色阶(Whites)

引用

  1. 色温、白平衡与色彩恒常性
  2. 我们说的 HDR 也许不是一个东西
  3. Photoshop 中的色彩平衡调整图层的原理分析
  4. 色彩空间基础
  5. 颜色的前世今生