mybreathtaking

文章 › 身边的物理

眼睛只会「数到三」:我们是怎么看见颜色的?

· Read in English

上一篇《秋天的叶子,为什么会慢慢变黄、变红?》发出去以后,有朋友问了一个很好的问题:

第二幅图里,叶子在 700 纳米以后反射回来的光非常多,比绿光还多得多。那为什么叶子的颜色,并不是那些光的颜色?

答案不在叶子里,而在我们的眼睛里。

先猜一猜

一种猜法是:那一段太阳光本来就少。这不对,阳光在那里一点也不弱。另一种猜法是:那是红外线,眼睛看不见。这只对了一半,700 到 780 纳米其实还算可见光,只是眼睛已经非常迟钝了。

要真正说清楚,得先知道眼睛是怎么「看」颜色的。

眼睛只认三个数

眼睛里负责分辨颜色的,是三种视锥细胞。它们各有偏爱:L 视锥偏爱红光一侧,M 视锥偏爱绿光,S 视锥偏爱蓝光。

一束光进到眼睛里,每种视锥都会把所有颜色的光,按自己的口味加权加起来,得到一个数:这束光让我「兴奋」了多少。于是不管光谱多复杂,眼睛最后只留下三个数,交给大脑。颜色,就是这三个数之间的比例。

回到那片叶子

把叶子反射回来的光,和三种视锥的灵敏度相乘,就得到眼睛实际收到的信号:

上:绿叶在日光下反射回来的光。中:三种视锥对每种波长的灵敏度。下:两者相乘,就是眼睛实际收到的信号。

第一行里,700 纳米以后的那一大片光,占了叶子反射光的一半。可是看第二行:三种视锥在 700 纳米以后几乎都趴在了地上。在 700 纳米,最敏感的 L 视锥也只剩峰值的 0.6%;到 750 纳米,只剩 0.015%。两者一乘,第三行里 700 纳米以后的那一大片光,几乎完全消失了,只占眼睛信号的 0.06%。

真正决定叶子颜色的,是 500 到 600 纳米之间那个不起眼的「小鼓包」:它让 M 视锥比 L 视锥更兴奋一些,S 视锥只是一点点,大脑就把它读成了绿色。

一束光扫过彩虹

可见光的边界并不是一堵墙,而是一段慢慢变低的坡。让一束同样强的单色光,从紫外一路扫到红外,看看三种视锥怎么反应:

一束同样强的单色光,从紫外扫到红外:三种视锥的信号,以及看到的颜色和亮度(模拟)。

在中间,三种视锥轮流兴奋,颜色从紫变到蓝、绿、黄、红。到了两头,信号越来越弱,颜色也越来越暗,最后完全变黑。电视遥控器用的是 940 纳米左右的红外光,三种视锥都毫无反应,所以按遥控器时,我们什么也看不见。

同一种黄,三种完全不同的光

既然眼睛只留下三个数,那就会有一件很奇妙的事:只要三个数一样,完全不同的光,看起来就是同一种颜色。

三种光谱完全不同的光:秋天黄叶反射的阳光、手机屏幕上的黄、一盏黄光灯。它们让三种视锥产生的信号几乎一样,看起来也几乎是同一种黄。

第一行是秋天黄叶反射的阳光,光谱又宽又平缓。第二行是手机屏幕上的「黄」:屏幕上只有红、绿、蓝三种小灯,这里亮的是红光和绿光,再加一点蓝光,里面一点黄光也没有。第三行是一盏只发很窄一段黄光的灯。

三条光谱长得完全不一样,三个数却几乎一样,眼睛也就分不出来。这叫「同色异谱」。手机、电视、电脑屏幕之所以只用三种颜色的小灯,就能显示出成千上万种颜色,靠的正是这一点:它们不用复制真实的光谱,只要骗过三种视锥就够了。

仔细看,黄光灯的 S 信号是 0,比另外两个少了一点点,所以它的黄看起来更「纯」、更鲜艳一些。三个数里只要有一个不一样,颜色就会跟着变。

一句话:颜色不在光里,而在眼睛里。眼睛把一整条光谱压缩成三个数;红外的光再多,三种视锥都不理它,我们也就看不见。

我们怎么知道

  • 用手机看遥控器:在家就能试。按住电视遥控器,对着手机的前置摄像头,屏幕上会看到遥控器的灯一闪一闪,眼睛直接看却什么也没有。手机的感光芯片能「看见」近红外光,我们的视锥不能。(不少手机的后置摄像头装了挡红外的滤镜,所以前置摄像头更容易看到。)
  • 用放大镜看屏幕:把手机屏幕调成纯黄色,用放大镜或手机的微距镜头看,只能看到红色和绿色的小点。
  • 色觉异常:如果三种视锥里有一种缺失,或者两种的灵敏度太接近,原本三个数不同的两种颜色,就可能变得分不出来。最常见的是红绿色觉异常,在男性中并不少见。
  • 测量视锥:19 世纪,麦克斯韦就用三种颜色的光调配出了各种颜色。后来,科学家直接测量了单个视锥细胞吸收各种波长光的本领。文中用的视锥灵敏度曲线(Stockman 和 Sharpe,2000 年),就是由这些测量和大量配色实验共同得出的。

还不知道什么

  • 三个数怎么变成「红色的感觉」?眼睛和大脑怎样传递、比较这三个数,我们已经知道很多;但这三个数为什么会让人「感觉到」红色,仍然是一个没有答案的问题。
  • 颜色恒常性:同一张白纸,在正午阳光下和在灯泡下,进到眼睛的光谱差别很大,我们却都觉得它是白的。大脑是怎么「扣掉」光源颜色的?那条有人看成蓝黑、有人看成白金的裙子,就是这件事出了分歧。
  • 别的动物:很多鸟有四种视锥,还能看见紫外光;螳螂虾有十几种感光细胞,可实验发现,它们分辨相近颜色的本领反而不如人。眼睛的「数数」方式,远比我们想象的多样。

下一次看到一片树叶、一块屏幕,可以想一想:这一刻,眼睛正在悄悄地数到三。

进阶:这些图是怎么算出来的

眼睛的三个数。一束光的光谱是 S(λ),三种视锥的灵敏度是 l(λ)、m(λ)、s(λ)。眼睛收到的三个信号是

L = ∫ S(λ) l(λ) dλ,M = ∫ S(λ) m(λ) dλ,S = ∫ S(λ) s(λ) dλ。

一条光谱有无穷多个数(每个波长一个),积分之后只剩三个,信息被大量丢掉了。凡是三个积分相同的光谱,眼睛都分不出来,这就是同色异谱。文中所有信号都按日光(CIE D65)为 1 来归一化。

叶子的光。叶子反射回来的光 = 日光光谱 × 叶子反射率,叶子来自上一篇的 PROSPECT-D 模型(夏天的绿叶,以及秋天第 28 天的黄叶)。

屏幕的黄。屏幕的红、绿、蓝三种子像素,用峰值分别在 620、530、462 纳米、宽度为 32、36、24 纳米的高斯曲线近似,这是典型 OLED 屏幕的样子,不是某块实测屏幕。要让它和黄叶的三个数完全相同,只需要解一个三元一次方程组,求出三种子像素各亮多少。黄光灯是宽 6 纳米的窄带光,选择让 L 和 M 的比例与黄叶相同的波长。

颜色和亮度。屏幕上显示的颜色,由 CIE 1931 标准观察者计算,再换算到 sRGB,与上一篇使用同一个曝光系数。纯单色光的颜色比屏幕能显示的更鲜艳,超出的部分被截掉了,所以动画里蓝紫色一端看起来比实际更亮一些。

数据来源。视锥灵敏度:Stockman & Sharpe, Vision Research 40:1711–1737 (2000),CVRL(伦敦大学学院)。CIE 1931 颜色匹配函数:CVRL。D65 光谱:CIE 015。叶片模型:Féret 等,Remote Sensing of Environment 193:204–215 (2017)。