三.两种颜色能达到匹配的基本条件
当使用光的红、绿、蓝三种原色去匹配某一颜色时,如果所使用的红、绿、蓝三原色光的量是r、g、b的话,对于这三个数值*称它为“三刺激值”。其数学表达式:
(C)≡r(R)+g(G)+b(B) (1)
方程左边的(C)代表待测光的颜色(或者说是待匹配光的颜色)。右边(R)、(G)、(B)分别代表红、绿、蓝三原色。符号(R)、(G)、(B)在方程中的作用是,用来标识r、g、b这三个数(三刺激值)都分别属于那一种原色光的刺激值(实际上,r、g、b这三个数是不能直接加在一起的。在方程中要是没有(R)、(G)、(B)这三个符号来区分r、g、b的话,该方程将失去意义)。方程右边的“+”号仅代表红、绿、蓝三种原色进行混合而已。“≡”表示方程两边的颜色达到了匹配的程度(即方程两边的颜色看上去是相同的)。如果颜色(C)是光谱色的话,在这种情况下的r、g、b便是“光谱三刺激值”。实际上光谱三刺激值实验并没有什么特殊的地方,只是它的待测颜色是光谱色而已。我们认为,在讨论光谱三刺激值时,除了涉及到光谱色的特点之外,它的匹配条件与一般颜色的匹配条件应该是一致的。所以我们在讨论光谱三刺激值时,为了理论的普遍性,依旧使用r、g、b这个符号。
按着我们的理论,应该如何来理解“颜色匹配”实验呢?本文认为,无论是光谱中的光,还是普通的光,还是1931(CIE)所规定的红、绿、蓝三种原色的光,它们都是光。它们对视网膜进行刺激时,都可能使视觉产生出红、绿、蓝三种原色。这是本文的基本观点。我们将依据这个观点来探索“颜色方程”的匹配条件。
先来看一下方程(1)的左边(即待测颜色(C)的一方)。假如色光C刺激视网膜时,可以使视觉产生出红、绿、蓝三种原色的数量为Cr、Cg、Cb的话(请注意!这里所说的三种原色是指视觉三原色。以后对于视觉三原色,我们将使用(R0)、(G0)、(B0)进行表示)。当使用视觉三原色来表示颜色(C)时,其颜色方程的形式应该是(仅是理论上的一种表示):
(C)≡Cr(R0)+Cg(G0)+Cb(B0) (2)
式中(R0)、(G0)、(B0)为视觉中的红、绿、蓝三种原色。
我们再来看一下方程(1)的右边(即光的三原色(R)、(G)、(B)这一方)。我们的理论认为,无论是这三种“原色光”当中的那一种“原色光”,当它们刺激视网膜时,都可能会使视觉产生出红、绿、蓝三种原色。
现在假设:如果有数量为r的“红原色光”使视觉产生出红、绿、蓝三原色的数量为rr、rg、rb;有数量为g的“绿原色光”使视觉产生出红、绿、蓝三原色的数量为gr、gg、gb;有数量为b的“蓝原色光”使视觉产生出红、绿、蓝三原色的数量为br、bg、bb的话,则对方程(1)右边三项,可以这样来表示:
r(R)≡rr(R0)+rg(G0)+rb(B0) (3)
g(G)≡gr(R0)+gg(G0)+gb(B0) (4)
b(B)≡br(R0)+bg(G0)+bb(B0) (5)
这样,依据公式(2)、(3)、(4)、(5)可写出“视觉原色”下的“颜色方程”:
Cr(R0)+Cg(G0)+Cb(B0)≡rr(R0)+rg(G0)+rb(B0)+
gr(R0)+gg(G0)+gb(B0)+br(R0)+bg(G0)+bb(B0) (6)
在实验过程中,方程(6)左边的颜色为一个颜色块(也*是(C))。方程(6)右边的颜色为一个颜色块(也*是,(3)、(4)、(5)中(R)、(G)、(B)的混合色)。所谓“颜色匹配实验”*是让这两个颜色块进行比较。如果这两个色块能使人在视觉上感觉是相同的话,即为“匹配”。那么,什么样的条件下能使二者达到匹配呢?显然应该是这样的:方程左边的(R0)的数量与方程右边的(R0)的数量相等;方程左边的(G0)的数量与方程右边的(G0)的数量相等;方程左边的(B0)的数量与方程右边的(B0)的数量相等。即:
Cr(R0)= rr(R0)+gr(R0)+br(R0) (7)
Cg(G0)=rg(G0)+gg(G0)+bg(G0) (8)
Cb(B0)=rb(B0)+gb(B0)+bb(B0) (9)
对于公式(7)、(8)、(9)我们称它为“视觉原色”下的“颜色匹配条件”。任何两种光的颜色要能达到匹配,*必须要满足这个条件。对于这个原理,我们称它为“光颜色匹配原理”。当然,这个原理对于“光谱色”的匹配来将,同样是适用的。
四.如何看待光谱三刺激值中所产生的“负值”
在讨论这个问题的时候,要涉及到两个方面的资料:1,前面提到的“视网膜视锥细胞的光谱吸收曲线”实验所产生的曲线图。2,“1931 CIE-RGB系统标准色度观察者光谱三刺激值”。
1931年国际照明委员会(CIE)规定红、绿、蓝三种原色光的波长分别为:700nm、546.1nm、435.8nm。为了理论阐述上的方便,我们把这三种原色光的位置标记在“视网膜视锥细胞的光谱吸收曲线图”上,(见下图)。在这张
图中,我们做了如下的变动:一,对图中的三条曲线我们使用了红、绿、蓝三种颜色来进行表示。二,对三条曲线没有延伸的部分,我们做了“示意性”的延伸(这种延伸仅仅是示意性的,不代表具体的数量关系)。其目的是:如果这三条曲线的延伸部分能经过546.1nm和435.8nm这两个位置的话,这将意味着:“绿原色光”和“蓝原色光”都可能使视觉中产生出红、绿、蓝三种颜色。
对“蓝曲线”及“绿曲线”的延伸,无需做更多的说明。但是,对“红曲线”的延伸要做如下说明:表面上看起来,“红曲线”不可能延伸的很长。但本图对“红曲线”却作了较长的延伸。理由是:435.8nm以左的区域是紫色区。紫色是红色与蓝色的混合色。如果在这个区域里缺少了红色,这个区域将不可能出现紫色。所以“红曲线”必须要延伸到435.8nm以左的整个区域才是合理的。并且,“红曲线”还必须要在“绿曲线”的上方。否则,该区域将表现为是蓝色与绿色的混合区(即青色区),而不是紫色区。延伸后的结果可以使我们看到:“绿原色光”可以使视觉产生出红、绿、蓝三种原色,其中蓝色的数量很少。“蓝原色光”也可以使视觉产生出红、绿、蓝三种原色,而其中绿色及红色的数量很少。
从上面的图中还可以看出:“红原色光”是很特殊的。它特殊*特殊在:1931年国际照明委员会(CIE)并没有把“红原色光”的波长选在红曲线的高峰处,而是选在了红曲线比较低的700nm的位置。在我们前一篇的博文《(83)为什么光谱三刺激值会出现负值(分析篇)》中,我们分析过了这种“红原色光”的特点,得出的结论是:1931年国际照明委员会(CIE)所规定的“红原色光”(700nm的光),对于视觉的作用只能产生出红色感,不会引发出蓝色感及绿色感。也*是说,700nm的“红原色光”只含有红色,不含蓝、绿。既然是这样,前面公式(3)中的rg(G0)与rb(B0)都应该等于0。于是,公式(3)、(4)、(5)将变成如下形式:
r(R)≡rr(R0) (3)
g(G)≡gr(R0)+gg(G0)+gb(B0) (4)
b(B)≡br(R0)+bg(G0)+bb(B0) (5)
下面我们来分析“1931 CIE-RGB系统标准色度观察者光谱三刺激值”的基本情况以及出现“负值”的根本原因。(请见下表)。该表中的黑色数值的部分是参与光谱色匹配的“光原色”的部分。对于该表中的“负值”部分,我们用了红、绿、蓝三种颜色做了标识。
1931 CIE-RGB系统标准色度观察者光谱三刺激值
从该表中可以看出:除了690nm到775nm这一段使用的是单一的“红原色”来匹配光谱色之外,其它的用的都是光的两种原色(对于表中标有彩色数值的部分,我们只把它看作是一种“辅助性”的颜色)。这能说明什么?这说明了光谱色的“饱和度”很高。它不能使用光的三种原色来进行匹配(光的三种原色进行混合时能产生出“白色”,如果产生出白色“饱和度”*降低了)。但是,经匹配实验发现:即使是使用光的两种“原色”来匹配光谱色,那也匹配不到一起。原因是,“光原色”它本身并非是“单色”。用光的两种“原色”进行混合时,在视觉中却会出现红、绿、蓝三种“原色”在混合。因而*在视觉中产生出白色。于是,便使得混合色的“饱和度”下降。这样,*造成了无法用光的两种原色来匹配高饱和度的光谱色。一句话,从400nm到700nm范围内,除了700nm、546.1nm、435.8nm这三种波长的光谱色之外,其他的光谱色都得不到匹配。原因*是光谱色的“饱和度”高。既然,光谱色的“饱和度”高,无法进行匹配。于是人们*想出了一个办法:降低光谱色的“饱和度”。于是,*出现了在380nm到435nm这一段,用了光的“绿原色”加入到光谱色一方来降低光谱色的“饱和度”;在440nm到545nm这一段,用了光的“红原色”加入到光谱色一方来降低光谱色的“饱和度”;在550nm到685nm这一段,用了光的“蓝原色”加入到光谱色一方来降低光谱色的“饱和度”。以此来达到匹配目的。实际上,这种做法虽然可以达到匹配的目的。但是,此时所匹配的颜色已经不再是“光谱色”了,而是另外的一些颜色。
人们为了把这一实验归结为是对“光谱色”所进行的匹配实验,于是*把加入到光谱色一方的辅助性颜色,从颜色方程中的左边移到了方程的右边。这样*出现了在光谱三刺激值中产生出“负值”的现象。例如,在550nm到685nm这一段,*是在光谱色一方加入了光的“蓝原色”。(方程右边是参与匹配用的“红原色”和“绿原色”)。这一段的颜色方程应该是这样的:
(C)+b(B)≡r(R)+ g(G) (10)
式中(C)为光谱色。r(R)+g(G)是为匹配光谱色而使用的光的“红原色”和“绿原色”(实际上仅使用这两种颜色达不到匹配的程度)。b(B)是为了降低光谱色的“饱和度”所使用的一种辅助的颜色(光的“蓝原色”)。当把b(B)这一项移向方程右端时,正的b(B)*变成了-b(B)。方程的具体形式如下:
(C)≡r(R)-b(B)+g(G) (11)
那么,用我们的理论又如何来看待这种“负值”现象呢?在这里,我们首先要表明我们看待“负值”现象的理念:我们认为,光谱三刺激值中的“负值”是由两个部分构成的:一是它的符号(它的符号是“负”的),一是它的大小。目前人们都特别关注的是这个“负值”中的“负号”。而我们的理念与此相反。我们认为,这个“负号”的成因非常简单,*是人们把b(B)从方程左端移到了方程右端而造成的,没有什么特别之处。我们的理论重视的不是这个“负号”,而是这个光谱三刺激值中的“负值”的大小是怎么来的。如果没有搞清这个“负值”大小的来源,只谈在公式两端移动了b(B)可以产生出“负”的数量,那是没有多大意义的。为了讨论b(B)的“大小”,选择方程(10)比较方便。现在假设:辅助性的颜色b(B)在视觉中产生的红、绿、蓝三原色的数量分别为br、bg、bb的话,则方程(10)如果以“视觉原色”来表示,*应该是这样的:
Cr(R0)+Cg(G0)+Cb(B0)+br(R0)+ bg(G0)+bb(B0)≡
rr(R0)+gr(R0)+gg(G0)+gb(B0) (12)
其中,Cr(R0)+Cg(G0)+Cb(B0)是光谱色的分解部分;br(R0)+ bg(G0)+bb(B0)是b(B)的分解部分;rr(R0)是光的“红原色”的分解部分;gr(R0)+gg(G0)+gb(B0)是光的“绿原色”的分解部分。
显然,方程(12)的匹配条件应该是:
Cr(R0)+br(R0)= rr(R0)+gr(R0) (13)
Cg(G0)+bg(G0)=gg(G0) (14)
Cb(B0)+bb(B0)=gb(B0) (15)
在这个实验中,用来降低光谱色“饱和度”的颜色是光的“蓝原色”。从“视觉原色”的角度来讲,实际上用来降低光谱色的“饱和度”的有效成分是,光的“蓝原色”里面的蓝色成分(也*是视觉中的蓝色)。也*是,公式中的bb(B0)这一项。
把方程(15)改写成bb(B0)的显式:
bb(B0)=gb(B0)- Cb(B0) (16)
现在有了公式(16),可以说,我们已经找到了在550nm到685nm这一段中,b这个数量“大小”的来源。对于b的“大小”可以这样来理解:当调整光的“红原色”、“绿原色”以及参与辅助匹配的“蓝原色”能使其方程两端满足匹配条件(13)、(14)、(15)的时候,此时参与辅助匹配的光的“蓝原色”中所含有的bb的数量,*决定了b这个数量“大小”。那么,此时的bb的数量是多少呢?此时的bb=gb-Cb。也*是说,此时的bb是,参与匹配的“绿原色光”中的视觉蓝原色的数量gb与光谱色中视觉蓝原色的数量Cb的差。处于这种情况下的蓝原色光的量b的“大小,*是550nm到685nm这一段中光谱三刺激值中的“负值”的“大小”。
下面我们*对公式(16)展开讨论:
当“光谱色”的波长为546.1nm的时候(即光的“绿原色”所在的位置),此时只用光的“绿原色”来匹配这一“光谱色”*可以了(也可以这样来理解:这相当于光的“绿原色”自身与自身进行匹配)。在这种情况下,gb(B0)=Cb(B0)。所以gb-Cb=0。即,b=0。也*是说,无需用光的“蓝原色”来辅助匹配。。
当“光谱色”的波长从546.1nm位置开始增加时,gb(B0)与 Cb(B0)的差,将不再是0了。并且,gb(B0)> Cb(B0)。否则,加入b(B)是没有意义的。但是,当“光谱色”的波长继续增加时,当达到690nm处的时候,再匹配光谱色时只需要“红原色光”,而不在需要“绿原色光”了。既然不需要“绿原色光”了,显然gb(B0)这一项*为0了。同时,光谱色中的蓝色成分(Cb(B0))这一项也为0了。此时b=gb - Cb=0。
通过这一段分析可以看出,从546.1nm到690nm这一段,b的数量是由0开始增加,之后又减少,到了690nm处的时候减少到0。显然b在这区间内肯定要有一个*大值。现在,我们来看一下“光谱三刺激值”表中的546.1nm到690nm这一段,其中起辅助作用的光的“蓝原色”的数量的变化(即,蓝色三刺激值的变化),不*是这样的一种情形吗?它有一个*大值*发生在545nm处,数值的大小是0.00138(在表中我们对这个*大值中的138标了黑色,目的为了便于重新查找它。至于这个“刺激值”的负号来源,也*无需再作解释了)。
从理论上讲(仅仅是从理论上讲),光谱三刺激值中“负值”的数量,是可以通过“视网膜锥体细胞的光谱吸收曲线”估算出来的。因为bb=gb-Cb。对于某一波长(入)来说,即:bb(入)=gb(入)-Cb(入)。在匹配实验中,“绿原色光”的量与“光谱色光”的量在此情况下,都是可知的。通过“视网膜锥体细胞的光谱吸收曲线”可以估算出来gb(入)与Cb(入)值。有了这两个值*可以得出bb(入)的值是多少。有了bb(入)值,*可以通过“曲线”估算出b。但是,目前这类实验实在是太少了,已有的“光谱吸收曲线”常常与“光谱三刺激值”之间很难统一到一起。仅*本文所使用的“光谱吸收曲线”与“光谱三刺激值”之间的关系*相差很远。本文所使用的“光谱吸收曲线”的红曲线峰值在570nm。从“光谱三刺激值”的表中来看,它的红曲线峰值应该是在600nm,相差30nm。这样,在光的三原色中的所含有的视觉三原色的比例,二者是不统一的。实施计算也*没有多大意义了。目前也只能是从理论上“定性的”进行讨论而已。
对于440nm到545nm这一段与380nm到435nm这一段中的光谱三刺激值的“负值”大小的来源*其道理上来说,应该与上述情况是一样的。在此不做繁琐的推导。只给出结果。
在440nm到545nm这一段,当实验达到匹配的时候,辅助用的光的“红原色”中的红色分量rr(R0)=gr(R0)+br(R0)- Cr(R0)。此时,辅助用的这种“红原色”光的量r,*是该段光谱色三刺激值“负值”的大小。查表可知,它的*大值发生在515nm。数值大小是0.09356。
在380nm到435nm这一段,当实验达到匹配的时候,辅助用的光的“绿原色”中的绿色分量gg(G0)= bg(G0)-Cg(G0)。此时,辅助用的“绿原色”光的量g,*是该段光谱色三刺激值“负值”的大小。查表可知,它的*大值发生在425nm。数值大小是0.00143。