物理学光学物理科普光波

我们知道光的颜色由光的频率决定,为什么光的三原色可以合成任意颜色的光?

问题描述

这是人肉眼的视觉错误,还是真的得到了任意频率的光?
地铁风
不会撸程序的设计狮不是好科研狗

不能说是视觉错误,但也不是因为两种频率的光叠加产生了一个新的频率。

这是人眼的 “color matching function”,讲的是人眼的三种感光细胞的频率响应。对于任意的频率,在这三条曲线上都分别对应了三个值,一般就称为 X, Y 和 Z。这三个值决定了你看到的是什么颜色。但是问题就是如果我告诉你一组 XYZ 值(也就是一个颜色),你并不知道让你感知这些值的光线组合是什么。

比如一个 575nm 的单色光,你可以直接从图上得出 X~0.8, Y~0.8, Z~0,这是某种黄色光。但是我们也知道把绿色光和红色光混合起来也能得到黄色,这是因为这两种光的组合也可以得到 X=Y,Z = 0。在人眼看来这两种情况没有任何区别,但并不是说你组合 500nm 和 650nm 的光就能得到 575nm 的光。

==========

更新:

来都来了,顺便说一下 color matching function 是怎么变成显示器上的 RGB 颜色的。

以三个 color matching functions 为基,我们可以张出一个三维空间。内积的定义是

f \cdot g = \int_0^{\infty}\!\! \mathrm{d}\lambda\, f(\lambda) g(\lambda).

这个空间叫 XYZ 空间。这个积分的结果是个数(废话⋯⋯),也就是说给定某种波长分布的光,我们可以用三个 color matching function 分别算出三个数,叫做 X, Y 和 Z。除此以外另一个常用的定义是用 XYZ 空间归一化出一个二维的 xyz 空间,定义是

x = \frac{X}{X + Y + Z}, \quad y = \frac{Y}{X + Y + Z}, \quad x + y + z = 1.

有了这个空间以后,一个自然的问题是如果我撸个单色光,并且把它的频率在可见光波段里扫一遍,在 xyz 空间中扫出的曲线是什么样的。答案是这样:

这条曲线叫 chromaticity line,所有人类可以感知的颜色都被这条曲线围在里面(由于 x + y + z = 1)。如果你把这条曲线的两端连一条直线(懒得画了,你自己想象吧⋯⋯),这条直线叫 line of purples,上面的所有颜色在人类看来都是某种紫色(没错,紫色在所有颜色里是特殊的)。@Leo 回答里提到的 violet 就在 line of purple 的中间某处。

在这条曲线所围的区域内,你可以找三个点,这三个点的位置在 XYZ 空间里对应三个矢量,这三个矢量可以自己再张成一个三维空间,这就是(线性)RGB 空间。所有的 RGB 空间都是嵌在 XYZ 空间里的,大概长这样:

这个三维空间你可以想像成扩展后的 xyz 空间完全体。灰色的平面是 x+y+z=1 平面,红色的曲线是 chromaticity line。图中的平行六面体就是 RGB 空间(这里的基矢使用 Rec.709/sRGB 的)。显然,xyz 和 RGB 数值可以用一个线性变换互相转换。

然后这个 RGB 空间仍然不是我们屏幕上看到的空间。人眼对暗色的感知很迟钝,为了照顾这一点,一般看到的 RGB 空间是 gamma map 过的。

现在你再网上看到的颜色都是 sRGB 空间里的,这个空间的 gamma 曲线很诡异,在暗处是一段直线(大概是为了精度?),然后才是一段 ɣ = 2.4 的 power law,大概长这样:

C_\mathrm{linear}= \begin{cases}\frac{C_\mathrm{srgb}}{12.92}, & C_\mathrm{srgb}\le0.04045\\ \left(\frac{C_\mathrm{srgb}+a}{1+a}\right)^{2.4}, & C_\mathrm{srgb}>0.04045, \end{cases} \quad a = 0.055

但!是!

影院里的数字电影使用的颜色空间是 ɣ = 2.6 的 xyz 空间。如果你不小心拿到这样的一个图片文件,想把它转成 sRGB 空间,使用上面那个分段函数是不行的,要使用一个 ɣ = 2.2 的曲线来近似。据说这是因为 Premiere 这些软件里都偷懒使用了 ɣ = 2.2 近似,所以这些 xyz 空间的文件实际上都是不正确的⋯⋯

⋯⋯

⋯⋯

⋯⋯

⋯⋯

难道我会告诉你我就是踩了这个坑以后才被迫知道了上面所有的东西这个秘密么?这个秘密我是不会告诉你的。



^^^ 上面这个梗好像最早来自严文井的童话《下次开船港》。

52 赞同 20 感谢 84 收藏 4 条已备份评论 发布于 2018-01-22 知乎原页 ↗

评论 4

那所有单色光都只是在这个曲线上吗?这个曲线所“围”的区域内的点表示什么呢?
0 赞
地铁风回复 木颍同作者

表示可见光光谱里没有这个颜色呗,比如白色。

0 赞