夸张点说,美丽的颜色中很大一部分其实只是你的脑补
图片:Charles Tilford / CC BY-SA
什么是颜色?
其实,我们生活中所说的颜色和天体物理中光谱中可见光的颜色并不是严格对等的。实际上,存在两种颜色的定义:
- 自然界中的颜色:
单色:严格对应波长,实际上所谓的不同的颜色就是可见光电磁波的不同波长(或者能量不同)的光子。比如波长为 550nm 的光子、波长为 700 nm 的光子...
混合色:不同光子的混合结果,实际上是一个希尔伯特空间…… 可以是离散的,也可以是连续的,比如:1 万个 350nm 的光子和 3 万个 600nm 的光子再加 5 千个 800nm 的光子混合成的颜色,就是离散的;再比如温度为 8000 K 的黑体的颜色,就是连续的,因为这个黑体会发出各个波长的光子,他们强度分布可以用普朗克公式来表示。
- 人眼感知的颜色
下图显示了人眼对整个可见光谱的感知。因为人眼视网膜上,主要负责感知色彩的视锥细胞对不同波长的光子的感知并不相同,存在一个相应的范围。如下图(自 http://CUDO.jp),
而人眼对不同波长的感知能力可以用下图中的白色曲线来表示。白线对应的值越高,表示人眼对此波段的光子的感知越灵敏。人眼把 S 那条线感受到的光子都认知为蓝色、把 M 那天线的认知为绿色、把 L 那天线对应的认知为红色。
(图片来自 wikipedia)
你注意到了吗?实际上,上述的三种颜色:蓝、绿和红色(RGB)正是我们所知道的三原色。所以,事实上,你只能看到三种颜色:蓝绿红!等等……事实不是这样啊!我们的世界明明丰富多次啊??你怎么在这里瞎扯?其实,你看到的多种多样的颜色是这三种颜色组合在一起的结果。这三种颜色好比一个三维空间里的三个坐标,你把他们不同程度的组合起来,就可以形成各种各样的颜色。实际上,他们形成了一个 3D 的色彩空间,如下图,空间中每一个点都代表了一种颜色。
(图片节选自 youtube 视频 https://www.youtube.com/watch?v=x0-qoXOCOow)
所以你看到的颜色其实就是人眼在对蓝绿红这三种光子的测量(实际上是一段响应曲线,而不是纯粹的单色响应),然后线性的叠加而已,如果你的线性代数还没有丢掉的话,你可以理解为,以蓝、绿、红为三个基矢量,你可以组成一个三维的线性空间,而你看到的颜色是这个空间中的某个点,也就你的蓝绿红三种视锥细胞测量到的强度的线性叠加而已!
其实我们的 RGB 显示器就是运用了这个原理,从而得已显示出不同的色彩。所以,很多颜色在自然界中并不是真实存在的,在上述的三维色度空间里,每一个颜色只是蓝绿红这三种光的相对强度的组合!!夸张点,这些美丽的颜色中很大一部分其实只是你的脑补而已……
当然,人眼并不是万能的。也就是说,你的视锥细胞的感应光子的能力存在一个范围,也就是到达某个强度或者低于某个强度就超过了它的能力范围。因此,我们可以说,人眼视锥细胞的响应也存在饱和以及最低响应值:蓝、绿和红不可能无限的亮。因此,人类的感知只是这个三维色度空间里的一个有限空间区域。人类只能感受到这个区域内的色彩。这也是 CIE 定义出他们最有名的 CIE 色表的来源。那么如何从人类感知的颜色对应到这个物理世界真实的颜色呢?Commission internationale de l'éclairage,也就是国际照明委员会根据人眼对色彩的响应曲线,把上面的三维空间变换到二维,做出了着名的 CIE 二维色度图。变换的过程可以参考下图,
(图片节选自 youtube 视频 https://www.youtube.com/watch?v=x0-qoXOCOow)
这二维的平面涵盖了人眼能看到的所有颜色(再次强调:实际上上述的三维色彩空间里有很大一部分是人眼无法识别的颜色,因为人眼视锥细胞的感光能力是有限的!)。最终,就形成了下面的 CIE 图,此图是 1976 年的修改标准,该图最早由 1931 年提出。
(图片来自:http://hyperphysics.phy-astr.gsu.edu/)
那么我们回头再看来,如何表示出人眼中某个波长的光子的“颜色”呢?你还记得前面图中的人眼三种视锥细胞对不同波长的响应曲线吧?当你要测量某个光子的“颜色”时,你只需要把那个波长处的三种视锥细胞的响应曲线的响应率分别乘以此波段的光的强度。那么你就会得到三个数值,也就是三维色度空间里的坐标(s, m, l),这时候,你就得到了这个光子的颜色。通过这样的方法,当你把每个波长的光子的结果都计算出来之后,你最终会计算出一条曲线(也就是上图中的这个舌形图的边,你可以注意到上面标注了很多数字,从 380-780 nm,就代表了这个波长的光子的颜色)。这些颜色可以近似代表自然界中真实的单色光的“颜色”。
除此之外,你还可以计算出色温曲线。如果你还记得黑体这个概念的话,不同温度会给出不同的能谱分布,如下图,不同的能谱分布中,蓝、绿和红色的相对强度不同。
(图片来自:Croatian-English Chemistry Dictionary & Glossary)
那么同样通过数学的运算,你可以计算出不同温度黑体在人眼中所反映出的“颜色”。就是图中间的那条曲线。太阳的温度是~6000K,于是我们可以对应出来,太阳是白色(偏一点点黄)。]
然而,还需要提到的是,上面说的是物体发出的光,比如太阳(黄白色),还有你的显示器。那么绿叶的颜色又是怎么回事?白纸呢?白种人为什么那么白?黑人为什么那么黑?因为他们不发光。所以,其实他们的颜色只是他们反射的光中蓝绿红这三种光的相对强度的组合!!因此,对于反光的物体来说,光源的颜色覆盖很重要。这也是为什么我们使用日光灯或者白光灯的原因。试想一下,如果你用绿光灯,你还能看到丰富多彩的衣服和图画吗?
除此之外,只得一提的是,汉语里的紫色其实是一个比较模糊的概念,既可以对英语英语里的violet,也可以是 purple。严格来说,violet 更接近比蓝波波长更短的颜色,也就是红和绿都很少,而蓝色也很弱的情形。相当于黑中加了点蓝的感觉。而紫色则是纯粹的脑补大红+大蓝而已。因此紫色(purple)并不是真实的颜色,自然界的光谱中并不存在 purple。那么 violet 呢?虽然它是在光谱中确实存在的颜色,但是你看到的 violet 并不是“真实”的,我们再来看一副更精确的视锥细胞响应曲线
(图片来自http://weeklysciencequiz.blogspot.com)
或者为了更加严谨,我们来看看论文里实际的测量曲线:
(图来自 Stockman et al 1993, The Journal of the Optical Society of America, 图 15)
注意到了吗?实际上在比蓝光中较短的波段红色视锥细胞的响应也比较突出,大概是 0.1,而蓝色大概是 0.7-0.8。因此,你看到的 violet 也是蓝 + 红组合的结果。但是,如果你强调的是,violet 是波长为 380nm 左右的光子的颜色,那么这样的顶一下,这个颜色确实是存在的。只是,你看到的 violet 的颜色并不是真实的 violet 的颜色。毕竟,真实的情况就是蓝+红的组合而已。试想一下,如果红色的视锥细胞在 380nm 处没有一个略强的响应度,那么我们看到的彩虹最终只会止于蓝色而已。有趣的是,蜜蜂短波的响应曲线的峰值在 340nm 左右,也就是他们能够真正看到我们所看到的“violet”。其实自然界中的很多动物都可以,而且不同的动物对不同波长的光的感知能力并不相同。所以你们眼中的世界的色彩都是不一样的。现实中还存在有四种颜色感应器的生物,我们称之为四色觉,相关内容请看这个知乎回答:众所周知有「色弱」的人,那是否有「色强」的人呢? - Jack Wang 的回答,因为他们的色度空间是思维的,所以他们的世界比我们的要绚烂的多,但是我们永远也不会知道他们眼中的世界究竟是怎么样的。打个不恰当的比喻,好比三维空间的生物永远也无法想象四维空间的生物是什么样的。
最后我们可以开一个脑洞,除了人类以外,我们完全可以把蓝色,绿色和红色这三个原色互换,其实他们只是大脑为了辨认颜色而做的区分而已,我们完全可以变让他们让绿色对应的光子在大脑中显示出蓝色,“红色光子”显示出绿色,“蓝色光子”显示出红色。这样一来,天空中的太阳仍旧是白色,然而树叶都是蓝色了……天空也变成了红色……晚霞变成了绿色…… 哈哈哈....
转载请注明:微图摘 » 夸张点说,美丽的颜色中很大一部分其实只是你的脑补