颜色的学问

November 18, 2007 10:48 pm UTC | In Study

一般人都知道各类颜色可以由三原色调出来,最常用的三原色是红绿蓝(RGB)。不过这个颜色的问题深究一下,貌似还是一个蛮复杂的问题……用最简单的话说,环境光线在物体表面反射到人眼睛里面,刺激视网膜产生神经电信号传送到大脑,大脑就有了颜色的感觉。

光有一个最基本的特性就是波长,不同波长的单色光颜色是不一样的:

visibal light spectrum

可以看到,可见的光波长大概是 400 纳米到 700 纳米。环境光在物体表面反射,加上物体自己辐射的光,进入人眼睛就会刺激视网膜上的视锥细胞。视锥细胞有三种类型,对波长的感应不一样:

cone response

三种视锥细胞最敏感的光波长分别是:S 细胞 424 纳米,M 细胞 530 纳米,L 细胞 560 纳米(这三个波长上的光其实并不是红绿蓝,所以比方把 L 细胞叫做红视锥细胞不是很准确。 )。物体反射光的频谱刺激三种视锥细胞产生三个不同的响应,然后后面就会有一连串的生理电反应直到刺激大脑视觉系统(这个具体的过程现在还没有最终定论)。可以想象,不同的频谱可能会产生相同的视锥细胞响应,比如将单色的红绿蓝三种光用适当比例混合产生的白光,和太阳白光看起来没什么区别,但频谱却完全不同(Metamerism 现象)。用集合论的话说,真正的物体颜色(用反射频谱表示)到人眼感觉颜色的映射是多对一的映射。也正是由于这个原因,照相机才可以用三原色模拟视锥细胞感应来过滤光线采集 RGB 三个颜色通道,而显示器也只要用 RGB 三个色彩来还原照片即可,完全不需要模拟物体反射的复杂频谱。

在实际中,摄影会受到光照的影响,因为物体反射的光频谱实际上就是物体反射率(一个波长的函数) 乘以环境光频谱。幸运的是,很多情况下,环境光和闪光灯频谱基本上是纯白,也即各个波长上的光强度差不多,所以物体反射的光频谱基本只由物体本身的反射率函数决定。一般环境光的特性用色温来表示,表示这个环境光的频谱最接近什么温度的黑体辐射。对于热发光的物体,这个色温基本就是发光体的温度。比如太阳表面 5500 K,正午太阳白光的色温也差不多是这个温度。蜡烛火温度稍低,只有 2000 K 左右,于是光也偏红一些。对于非热发光的物体(比如日光灯是荧光发光,完全不同的发光机理),就需要看它大概和什么温度下的黑体辐射频谱对人眼产生一样的刺激来决定色温。不同色温的光线其表现颜色也不同:

color temperature

低色温的光主要能量都在红外(长波长),光看起来偏红;很高色温的光主要能量移向紫外(短波长),光就看起来偏蓝;中间温度就是白光,也即所有可见光波段的能量都差不多多。比较有趣的是一般蓝色被认为是冷色调,而高色温的光源却是偏蓝的。这个的解释是日常生活中的光不会到一万 K 的色温,人们一般认为东西变红就是热,于是只有红黄等色才可能是暖色调;而湖水啊冰啊什么的都会呈现绿色蓝色,于是这些就被认为是冷色调,实际上这个蓝色出现的机理并不一样。

到此为止,没有任何问题。照相机只要模拟人的视锥细胞感应,就可以真实的反映视网膜上的电信号。可是要命的是视觉系统有一个主观的成分在里面,比如一个红苹果,在阳光下是红的,到了篝火旁边,人们当然认为它也是红的,但是拿科学仪器一测就知道,这两种情况下苹果反射的频谱是不一样的,原因是环境光频谱不一样。如果照相机在两种情况下拍照都不加以调整,拍出来的照片就不真实了,这个不真实不是因为照相机没照对频谱,而是因为人在不同环境光下会主观的对视锥细胞的感应作修整,这个现象叫做 Color constancy。很有趣的是,尽管这是一个主观的过程,但不同的人做的修正几乎都是一样的,因此,照相机也可以对 RGB 三个通道的强度来做修正以模拟人脑,一般这个过程叫做调节白平衡。

另外一些有趣的问题:

鸟类有四种视锥细胞,多出来的一种对紫外光比较敏感,科学家们发现雄性鸟类的羽毛在紫外段的反射很强也很多变,于是推测这种特殊的视觉在求偶方面有特殊的作用。

人类视锥细胞的基因是在 X 染色体上的,由于男性只有一条 X 染色体,所以色盲的比例要比女性高很多,比如红绿色盲就是因为 L 和 M 两种视锥细胞少了一种,因为 S 视锥细胞在分辨红绿上几乎没有作用。

有研究声称某些人携带了四种视锥细胞的基因,也就是说有四色视觉系统(Tetrachromacy),有研究甚至号称有一半女性都有这种基因,只不过很多人不知道如何使用这种能力。这个研究貌似没有定论,不过以前有笑话说某人帮老婆买布,买回来老婆说不是这种红,是那种红,结果某人看了两种红觉得完全没区别,现在看到四色视觉系统的研究,觉得女人对颜色更敏感这件事貌似是有生理依据的。

人视网膜上除了视锥细胞还有一种视杆细胞也会感光,但只在光比较弱视锥细胞不能工作的时候才开始工作。视杆细胞只有一种,所以夜晚灯光不足的时候人不能分辨颜色,只能看到黑白的世界。

在特殊的场合,RGB 照片模拟物体颜色会丢失掉有用的信息,这种情况下比较好的办法就是把反射频谱直接测下来。医学上有时候对病变组织颜色的采样就需要这样做。

两个物体在太阳光下看起来颜色一样,到了日光灯下面就未必颜色一样,这是因为他们有不同的反射率函数。在太阳光下,它们的反射光刚好对三种视锥细胞产生比例相同的刺激;而当环境光频谱变化的时候,他们反射出来的频谱就变化了,人就会看到不同的颜色。在工业上,有时候需要两种不同的材料在各类光照条件下匹配色彩,这就需要尽量匹配它们的反射率函数,一般这样的颜色匹配叫做频谱色彩匹配。

色彩学涉及物理学、生理学、心理学、脑科学、计算机科学等,网上有很多介绍文章,我就不写了。可以在 wikipedia 查询下列关键字:color, color temperature, color vision, color theory, metamerism, tetrachromacy, white balance, gamma correction。

鸟类视觉系统:Papers on avian vision,这里也讲到进化演化过程,为什么鸟类比人类多一种视锥细胞。

一个讲解数字摄影基本原理的网站:Digital Photography Tutorial,文字清晰,说理到位,图片丰富。

Tags: , , , , , , , , ,

6 Comments »

RSS feed for comments on this post.

  1. 蜡烛的温度有2000K?这也太恐怖了……

    Comment by forcey — November 19, 2007 12:53 am UTC #

  2. 大哥你太强了,语言通畅,条理清晰,不当教授太可惜了。

    Comment by thinkgeeker — December 21, 2007 4:58 am UTC #

  3. Orz

    Comment by Orz — December 30, 2007 11:11 pm UTC #

  4. 拜托 好明显的错误 红绿蓝是三基色 不是三原色

    Comment by dream — June 28, 2009 5:32 am UTC #

  5. 三原色是红黄蓝

    Comment by dream — June 28, 2009 5:33 am UTC #

  6. dream: 请不要钻牛角尖 :) 原色和基色只是说法不同。红绿蓝是色光三原色(加色法);你说的这是颜料三原色(减色法)。不过在印刷工业、彩色胶片业,普遍采用的是青、品红、黄作为三原色;很多书里说红黄蓝三原色基本是没有工业背景脱离实际的说法。而显示器、数码相机等等现在当然是用红绿蓝色光三原色的。

    Comment by atppp — June 28, 2009 9:23 am UTC #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This weblog is licensed under a Creative Commons License.
Powered by WordPress. Theme based on Pool by Borja Fernandez.