分享

RGB是用红绿蓝来模拟自然界的光混合出无... | 问答 | 果壳网 科技有意思

 九重天上游霄汉 2014-04-14
三原色是人的色觉系统决定的,甚至不适用于其它动物,更别说自然界。我们以为用三原色可以混合出其它颜色,是因为我们的视觉系统无法区分。

物理上根本不存在颜色,中学物理就有介绍,光的本质是电磁波,其中大概是400-700纳米波长的电磁波能被人眼感知。不同颜色的光本质是不同波长的电磁波(或它们的混合),颜色纯粹是视觉系统进化来的功能,让动物在大自然中识别不同的事物。

人的视网膜上有3种不同的视锥细胞,都能对可见光产生神经信号,但3种细胞对不同波长的光线有不同的敏感度,因此分别称为短波、中波、长波视锥细胞。例如中波视锥细胞,对绿色光(刚才说了,光本没有颜色,本质为某种波长的电磁波)最敏感,虽然也能对红色光有反应,但敏感度较低。三种视锥细胞对所有波长的敏感度如图:


人能产生颜色的感觉,来自三种视锥细胞对不同波长光线的神经信号差异,人能感知的所有颜色可用这三组信号的强弱表示。

由于每种单色光源对视锥细胞的刺激特征都不一样,因此人眼能分辨所有单色可见光(不同波长的可见光看起来都是不一样的)。

红色+绿色=黄色,是因为红色光+绿色光混合产生的神经信号特征和黄色光几乎一样,我们视觉系统无法区分,但物理上是不一样的。同理,用红绿蓝颜色的光按不同强度混合,就能“骗”过我们的视觉系统,让我们以为那里有自然界所有颜色。

那为什么三原色偏偏是红绿蓝呢?最让人困惑的是,三种视锥细胞最敏感的光颜色不是红、绿、蓝,而是蓝偏青、绿偏黄、黄。

真相是:红绿蓝能让你的视神经系统产生最显著信号差异,表现为最高饱和度(最鲜艳)的颜色,所以它们才被称为三原色。例如红色光,它并不是长波视锥细胞最敏感的波长,却是中波、长波视锥细胞敏感差别最大的。早期的彩色电视就有不是红绿蓝的,但现代显示器都用红绿蓝,因为饱和度最高,对色彩的还原能力最强。

【展开1】红绿色盲

常见的红绿色盲者,因为基因缺陷,缺少了中波段(接近绿色)视锥细胞,所以他们看到这个世界的颜色是二维的,特别是红色和绿色对他们视觉系统的刺激差别不显著,所以他们无法分辨红色和绿色。不只是红色和绿色,其实波长比绿色光长的单色光,橙色、黄色、一股脑的颜色,他们眼里几乎都一样。

【展开2】其它动物

既然三原色只是人的视觉系统决定,那是不是别的动物就有不一样的三原色?

不错!但不只是三原色,大部分鸟类、爬行类、鱼类都有四色色觉,他们看到的世界比我们更多彩。如果他们会看电视,会发现电视里的世界非常奇怪,颜色和现实完全不一样,为了让它们也能享受电视的乐趣,你必须设计一套四原色的影像设备,包括摄像机、视频处理软件系统、电视机。而哺乳类的色觉多数是二色和三色。

【展开3】紫色

事实1:红色+蓝色=紫色
事实2:【单色紫色光】是比【单色蓝色光】更短波长的电磁波(因为有“紫外光”这个说法)
矛盾:【单色紫色光】和【红蓝混合光】对视锥细胞的刺激显然不一样。

(纠正:早前我说【单色紫】和【红蓝混合紫】是不一样的颜色,我搞错了,显示器上蓝色+一点点红色 和 单色紫是可以无限接近的)

紫色=蓝色+一点点红色 的成因来自色觉抵消机制。

【展开4】色觉抵消机制

前面提过,颜色是3组视信号的差异造成的。请再读一次:颜色是3组视信号的差异造成的。

“差异”这个词非常重要,如果等强度刺激三组视锥细胞,你会看到白色——没有颜色。考虑屏幕上RGB像素(255,0,0)(红色),(255,128,128)(没那么鲜艳的红色),(255,255,255)(白色)。同时增加G和B会让你红色的感觉越来越弱:红色被抵消了。

三组视信号在变成你的颜色感受时,色觉系统会对其进行加工:互相抵消。一个可见光源会同时刺激你三组视神经信号,所以对其进行相互抵消可以让各种颜色的信号特征有更大差异。

注意:抵消的是色彩、饱和度,而亮度不会抵消,所以抵消的结果不是漆黑一片,而是明亮的白色。

看上面三组视锥细胞的敏感度对比图。中波和长波两组曲线很接近,短波一组比较远,为了让你更显著区分中波、长波这区间的光,中波、长波视锥细胞的信号抵消作用比较强,这是红色和绿色互为补色的原因。同理,短波视锥细胞和中波、长波两组有差不多的抵消作用(因为距离差别不大),所以蓝色和黄色(红色+绿色)是补色。

说好的 紫色=蓝色+一点点红色 呢?马上就来了。

1)当你看一个紫色光源,只有短波视锥细胞有感应,三组视信号强度比是(10:0:0)。
2)当你看一个红色光源,只有长波视锥细胞有感应,三组是信号强度比是(0:0:10)。
3)比起长波曲线,中波曲线更接近短波曲线,所以当你看着蓝色光源时,中波信号会比长波信号强那么一点点。当你看着一个蓝色光源,三组视信号(短、中、长)强度比近似这样:(10:2:1),经过抵消,输出(9:1:0)。
4)(3)蓝色的基础上加一点点(2)红色,增加长波视信号,就可以把剩余那点中波信号抵消掉。(2)/10+(3)=(9:1:1) 抵消输出 (8:0:0)。

1和4没有区别了,紫色=红色+蓝色 就是这么来的。那一点一点的红色,就是为了抵消掉蓝色中的一点点绿色,那看起来就是紫色了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多