关于颜色和三原色的原理,稍微说一点我知道的吧...
213
2
|
[1 楼] solarian
[泡菜]
14-2-15 14:43
正好以前做过一点点这方面的工作...稍微讲一讲...
首先我们知道所有的物体发射或者反射的光,都是光谱的形式,即是说很多个波长都有一定的强度。而通常所说的三原色(RGB),分别是三个波长的强度,为什么一个光谱会和三个数值对应起来,或者“等价”呢?那么我们就要说说三原色提出的背景... 首先,从人的角度说,人的眼睛是有三种色素的,每种色素有不同的吸收带,也就是说,三种色素分别吸收了若干光子之后,产生了三组信号,然后大脑把这三组信号处理成颜色信息...当然某种色素的吸收也是连续的,也就是说在各个波长都能吸收,那么我们可以假设,如果某个波长吸收量是1,另一个波长吸收量是0.5,那么第二个波长吸收两份能量就和第一个波长吸收一份能量产生等价的信号,所以其实可以用单一波长(或者是很窄的波长)的光去刺激眼睛,然后产生跟看到一段光谱同样的视觉效果了... 当然还有个问题就是,选哪个波长比较好,以及实际颜色(的光谱)怎么与三个波长的强度数值对应...最早制定标准的是CIE组织,如果大家买摄影灯可能看到这个灯是符合CIE什么什么标准的,就是这个组织...他们所做的实验是所谓的标准观察者实验,就是说如果有一个理想的测试者,让他看实际颜色,再让他看三个单色灯改变亮度组合出的(伪)颜色,如果感觉是相同的,那么就说明这两个数值是对应的。由于大家的视觉系统都是一样的,只要找一群人做这个实验就可以了... 当然选择具体哪个波长作为RGB值其实是有讲究的,最早CIE的实验中,测试出一些颜色用选取的三色无论怎样也组合不出,必须使用补色(也就是说某种颜色的负值)才能匹配的情况。但是实际应用中很难提供负亮度和补色,所以最终的CIE标准是把测试数据处理了的,也就是构造三种波长(x,y,z),使得他们等于RGB的线性组合,并且保证在整个区段,都不会出现数值...下面的图就是标准观察者实验测出的匹配函数,以及RGB与xyz之间的转换方法... 这样计算出的xyz的匹配函数,就相当于是理想滤色片或者理想传感器的吸收光谱。如果能制造出吸收完全一致的传感器,就能完美的模拟出颜色来。而这三种波长,其实已经不是经典意义上的红绿蓝了。同样的道理,实际上使用的滤色片,或者传感器,使用的也不一定(或者肯定不是)经典的RGB,但是只要测出的三数值跟RGB有对应关系,比如对实际传感器测出的三个数值命名为NOP(或者随便什么名字),只要N=n1R+n2G+n3B,O和P也有类似的表达式,就能从这个数据转化成RGB数值... 所以X3的传感器也是一样的,虽然第一层不止吸收蓝光,或者说吸收光谱覆盖红橙光的波段,但是也无所谓,只要你能知道它究竟吸收了多少红橙光,还是可以计算出最终的B通道数值,所以也只要实验人员做一个传感器的标准观察实验就可以了(当然实际上要更复杂,不过原理差不多)...当然摄影方面除了精确还原之外还有一个问题就是心理上的,比如你精确还原出来的肤色,在屏幕上看起来就是发灰发绿,毫无生气的感觉,要求厂家把一定的绿色过滤掉,但是同时有不能有明显的色偏(绿色减少会偏品红)。所以实际上的照相机很少有还原很精准的,而是有各家的色彩风格...而这样的风格就没有标准实验可言,更多是厂家的经验积累了... 本帖最后由 solarian 于 2014-2-15 14:44 编辑 |
|
[3 楼] hostmissile
[泡菜]
14-2-15 18:33
这必须支持!
|
|
[2 楼] X3er
[资深泡菜]
14-2-15 17:29
楼主辛苦,比较专业了 |
楼主辛苦,比较专业了