五光十色——色域基础知识

举报
k3soft 发表于 2018/01/29 10:19:40 2018/01/29
【摘要】 色域基本知识 1 概述 本文主要讲了色域图是的由来,以及常见几种色域,都是基本知识,红色字体部分是重点。后面“三刺激值出现负值的原因分析”可看可不看。 色域是对一种颜色进行编码的方法,也指一个技术系统能够产生的颜色的总和。 2 三刺激原理 可见光的波长范围大致在390nm到700nm之间,但人类只能在几nm这个尺度上感受到这些光的区别,也就是说,对

色域基本知识

1      概述

本文主要讲了色域图是的由来,以及常见几种色域,都是基本知识,红色字体部分是重点。后面“三刺激值出现负值的原因分析”可看可不看。

色域是对一种颜色进行编码的方法,也指一个技术系统能够产生的颜色的总和。

2      三刺激原理

可见光的波长范围大致在390nm700nm之间,但人类只能在几nm这个尺度上感受到这些光的区别,也就是说,对于纯色光(只含一种波长的光),人类大概只能识别100种。

基于此,有人提出了人眼中有100种感受不同波长光的光感受体,也有人认为有67种不同的光感受体。但最被认可的是三刺激理论。三刺激理论认为,人眼中含有三种不同的光感受体。这种猜想后来被证实,确实存在三种不同的视锥细胞,分别能够感应红、绿、蓝三种光的刺激。下图是三种细胞对不同波长光的响应曲线,分别在420nm534nm564nm达到高峰(冈萨雷斯版教材中给出的值是445/535/575)。

注意,这三种波长的光不是真正对应到蓝色、绿色、红色。所以,严格的说,这三种受体分别应该称为长波、中波、短波光感受体。

593e82ab4c5c7.png

1 人眼对光的感知

3      颜色匹配试验

下图描述了经典的颜色匹配实验,左侧是白板,在下方发射单一波长的纯色光,上方可以发射三种不同波长的光,并可以调整它们的强度,人眼透过狭缝去观察上下两块板的颜色是否相同。这三种色光通常是700 nm(红色)、546.1 nm(绿色)和435.8 nm(蓝色)三种光。

593e82ab4d4ae.png

2 颜色匹配试验

人们用上述规定的红、绿、蓝三种“原色光”去匹配等能光谱色的时候,却发现大量的光谱色无法能得到匹配。原因是用光的三原色混合出来的颜色其饱和度低于“光谱色”颜色的饱和度,其颜色浅淡无法达到匹配的程度。

为了把可见的单色光都用三色光匹配出来,人们想出了这样一个办法:将红色发光器移到下方,在光谱色上加入某种原色使其产生出一定数量的白色,来降低光谱色的饱和度以获得匹配。比如,对光谱色中的紫色进行匹配。紫色应该是红、蓝两种颜色的混合色,但实际上用“红原色光”与“蓝原色光”进行混合,其混合色的饱和度比光谱色的饱和度低。于是就在光谱色的一方加入一定数量的“绿原色光”便可以使双方达到匹配。

人们用这样的办法变相的来获得“光谱三刺激值”,因此,在某些频段,红色光出现了负值(绿色、蓝色也有负值,具体见表格)

593e82ab4de5b.png

3 三刺激值曲线

 

593e82ab4e5af.jpg

4 1931 CIE-RGB系统标准色度观察者光谱三刺激值(波长nm)

4      XYZ空间

通过颜色匹配试验,我们得到了上面的表格,需要用色度图的形式表现出来。如果要根据三个刺激值RGB来表现可视颜色,绘制的可视图形需要是三维的。为了能在二维平面上表现颜色空间,这里需要做一些转换。颜色的概念可以分为两部分:亮度(光的振幅,即明暗程度)、色度(光的波长组合,即具体某种颜色)。我们将光的亮度(Y)变量分离出来,之后用比例来表示三色刺激值: 

r=R/(R+G+B)

g=G/(R+G+B)

b=B/(R+G+B)

这样就能得出r+g+b=1。由此可见,色度坐标rgb中只有两个变量是独立的。这样我们就把刺激值RGB转换成rgY(亮度)三个值,把rg两个值绘制到二维空间得到的图就是色域图。

http://img.blog.csdn.net/20160715172723568?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

5 rg为坐标轴的色域图

上图中,马蹄形曲线就表示单色的光谱(即光谱轨迹)。例如540nm的单色光,可以看到由r=0g=1b=(1-r-g)=0三个原色的分量组成。再例如380-540nm波段的单色光,由于颜色匹配实验结果中红色存在负值的原因,该段色域落在了r轴的负区间内。自然界中,人眼可分辨的颜色,都落在光谱曲线包围的范围内。

CIE1931-RGB标准是根据实验结果制定的,出现的负值在计算和转换时非常不便。CIE假定人对色彩的感知是线性的,因此对上面的r-g色域图进行了线性变换,将可见光色域变换到正数区域内。CIECIE1931-RGB色域中选择了一个三角形,该三角形覆盖了所有可见色域,之后将该三角形进行如下的线性变换,将可见色域变换到(0,0)(0,1)(1,0)的正数区域内。即假想出三原色XYZ,它们不存在于自然界中,但更方便计算。

593e82ab4f6ff.jpg

593e82ab4fde6.png

593e82ab5047d.png

593e82ab50ce6.png

XYZ空间下的三刺激曲线如下。

https://pic4.zhimg.com/df4e699f80c3531c072f2eb03acf4ed7_b.jpg

6 XYZ空间下三刺激曲线

xy的值在xy坐标系中画出就得到xy色度图。

https://imgsa.baidu.com/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=8c8414de9d3df8dcb23087c3ac7819ee/8b13632762d0f7036dc48ff50afa513d2697c5a1.jpg

7 XYZ空间下色域

这就是CIE1931-XYZ标准色度学系统。该系统是国际上色度计算、颜色测量和颜色表征的统一标准,是几乎所有测色仪器的设计与制造依据。

上图中红、绿、蓝点分别表示三原色,连接这三点得出的三角形即为由三原色混合所得颜色的范围,三角形外的颜色均不能由三原色混合产生。而普通显示器因为技术原因,并不能发出纯正的单色光,故而所围成的三角形更小,显示的颜色更少。

注意这里的颜色只是示意,事实上没有显示设备能完全还上面所有的自然色域。

这个图的性质:

1)所有的坐标轴都不在这个实心锥体内;

2 相应于没有光照的黑色位于坐标的原点;

3)该色度图包含了一般人可见的所有颜色,即人类视觉的色域;

4)色域的马蹄形弧线边界对应自然界中的单色光;

5)色域下方直线的边界只能由多种单色光混合成;

6)在该图中,任意选定两点,其连线上的颜色可由这两点的颜色混合成,给定三个点,其构成的三角形内颜色可由这三个点颜色混合成;

7)给定三个真实光源,混合得出的色域只能是三角形(显示器因为技术原因,并不能发出纯正的单色光,故而所围成的三角形更小,显示的颜色更少),绝对不可能完全覆盖人类视觉色域;

8NTSC(National TelevisionSystems Committee)中标准红*** 坐标为(0.670.33),标准绿*** 坐标为(0.210.71),标准蓝*** 坐标为(0.140.08)。纯正的白光色坐标为(0.330.33)

5      常见色域空间

NTSC色域:NTSC标准下的颜色的总和。NTSC是美国电视标准委员会缩写。

sRGB (standard RGB):微软联合HP、三菱、爱普生等厂商1997年联合开发的通用色彩标准,受微软强大用户群体的影响力的威慑,绝大多数的数码图像采集设备厂商都已经全线支持sRGB标准,如:数码相机、数码摄像机、扫描仪、显示器等都能看到sRGB的选项。而且几乎所有的打印、投影等成像设备也都支持了sRGB标准。唯独没有全面普及的就是显示器,现在只有部分高端显示器品牌或者一些品牌的高端型号才支持sRGB标准。

Adobe RGB色彩空间:由Adobe Systems1998年开发的色彩空间,让显示器在RGB模式下展现更多色彩。其作用就是让显示器在RGB模式下展现更多的色彩。是高性能显示器的一个评价标准。AdobeRGB的开发目的是为了尽可能在CMYK彩色印刷中利用计算机显示器等设备的RGB颜色模式上囊括更多的颜色。AdobeRGB色彩空间粗略包括了50%Lab色彩空间中的可视色彩,主要在青绿色(cyan-green)色系上有所提升。AdobeRGB 的色彩空间覆盖了CIE 1931标准的52.1%。白点对应的是D65

注:CMYK是区别于RGB的色彩模型,原色为青色(C)、洋红色(M)、黄色(Y)和黑色(K),采用减色法,多用于出版和印刷业。

这三个色域标准是在不同的时代发展起来的,在CIE 1931标准之后,电视开始发展起来,于是美国国家电视系统委员会制定NTSC色域,规定了彩色电视的色彩标准。随后由于数字设备的快速发展,sRGB色域被制定出来,主要针对数字显示领域,而Adobe色域多应用于打印出版行业,是后起之秀。

由于电视的受众面更加的宽广,所以有很多厂商喜欢用NTSC色域来描述广色域,但是由于这个标准过于的久远,很难把握如今的用户色彩需求,所以用NTSC色域来描述广色域并不合适。一般来说,覆盖100% sRGB色域和100%Adobe色域是更加准确的描述广色域的方法,当然NTSC也可以作为一个参考(常见但并没有那么重要)。

 

https://pic2.zhimg.com/v2-394a306e94bcd8ae923a0cfd72ccc915_b.jpg

8 不同色域空间对比

手机上显示如果达到100%NTSC色域,就会容易产生颜色过于饱和的感觉,也就是偏色。iphone6采用100%sRGB色域是比较符合颜色在手机屏幕上的预期设定的,所以颜色看起来接近真实效果。

NTSC色域比sRGB色域空间广的多,它们之间的换算公式为100%SRGB=72%NTSC,这并不是指100%SRGB72%NTSC的色域空间能够完全重合,它们只是面积相同而已。NTSCAdobe RGB的换算公式为100%Adobe RGB=95%NTSC。所谓广色域就是指超过72%NTSC色域的所有其它色域。

通常采用AdobeRGB这一标准的显示器通常都是色彩能力极强的高端显示器,例如优派VG2450这样的显示器。这使得Adobe RGB色彩空间在印刷等领域具有更明显的优势。不过需要注意的一点是,虽然Adobe RGB是高性能显示器的一个重要评判标准,但对于显示器来说并非单一AdobeRGB数值越高越高显示器效果越好,因为当显示器Adobe RGB越高而色位和sRGB标准没有相应提高的话,如明基Ez2450LAdobeRGB标准为95%,但色位缺仅有6bitsRGB也只达到了100%,这样画面反而会出现色彩过渡不均匀,画面有撕裂感以及偏色等问题。推荐的AdobeRGB和色位的匹配表如下:

593e82ab529e9.jpg

6      “光谱三刺激值”出现负值的原因分析

注:当人们用规定的红、绿、蓝三种“原色光”(R700 nmG546.1 nmB435.8 nm)去匹配等能光谱色的时候,在三刺激曲线上出现了负值的情况。通俗的说,是因为绿原色光在人眼看来不仅会产生绿色,还会混有蓝色或(和)红色分量。

下面来分析一下,表中的“光谱三刺激值”为什么会出现负值。我们分析这个问题时,所使用的理论是“三通道视觉结构模型”。

“三通道视觉结构模型”认为:明视觉有RGB三个信号通道。当外界光信号经过视网膜转成视信号之后,通过这些通道时便可以使视觉产生出红、绿、蓝三种原色(这里所说的视觉中的三种原色与光的三种原色并非是一致的。视觉中的三原色是纯粹的原色,光的三原色是混合色,并且是视觉原色的混合色)。视觉中的三个视信号通道对外界来的信号存在着不同的衰减。其衰减情况取决于外界色光的波长。因此,当外界某一波长的色光照射到视网膜上之后,所产生的视信号可能只通过一个通道(即,使视觉能产生出一种原色),也可能通过两个或三个通道(使视觉产生出两种或三种原色)。到底能出现那一种情况,要取决于外界色光的波长。下面我们来分析一下,在这个“光谱三刺激值表”中为什么会出现负值的现象。

首先,我们来看一下700nm处光谱色的匹配情况。从“表”中可以看出,要想匹配700nm的光谱色,只需要亮度为0.00410的“红原色光”就可以了。并不需要“绿原色光”和“蓝原色光”的参与。不需要“绿原色光”和“蓝原色光”的参与这件事,对于现在流行的光原色理论来讲,似乎是一种理所当然的事情(如果说需要它们来参的话,倒是一件难以理解的事情)。

但是,“三通道视觉结构模型”的理论是个非正统的理论。它认为,光谱色并非就是“单色”,光的三原色也并非就是“单色”。现在700nm光谱色可以由“红原色光”进行匹配,不需要“绿原色光”和“蓝原色光”的参与。但并不能说明700nm处的光谱色就是一种“纯红色”或者说“红原色光”的颜色也是一种“纯红色”。因为,如果在700nm处的光谱色中含有蓝、绿成分,而“红原色光”中也含有“等量的”蓝、绿成分的话,二者同样可以获得匹配。仅仅依据“红原色光”能与光谱色进行匹配,就认为700nm处的光谱色以及“红原色光”的颜色就是一种最简单颜色(“单色”),其证据是不充足的。

下面,我们再从700nm往下看。首先是700nm780nm这一段。这一段一直都是用“红原色光”来匹配的,完全不用蓝、绿两种色光。既然,700nm780nm这段光的波长是“变化的”,而红原色光的波长是“固定的”。并且它们二者一直能匹配到一起,那只有一种可能,那就是它们都只含有红色,不含蓝和绿(如果要是含有蓝色和绿色,在波长“变化”的过程中,蓝、绿二色的数量决不可能维持不变,因此也就不可能获得匹配)。结论11931年国际照明委员会(CIE)所规定的“红原色光”(700nm的光),对于视觉的作用只能产生红色感,不会引发出含蓝、绿色感。也就是说,700nm的“红原色光”只含有红色,不含蓝、绿。

我们再从700nm往上看。要匹配685nm的光谱色,需要红、绿两种色光来匹配(理论上讲,这里应该是“橙色”的起点)。

再往上看,到了655nm处,蓝色光的值出现了0.00001的负值。这个意思是说,要想能对655nm的光谱色进行匹配,必须要在光谱色这一边加入0.00001的蓝色光,这样才能同“红原色光”与“绿原色光”的混合色光进行匹配。这种负值的出现显然是由于:“红原色光”或者“绿原色光”中多出了“蓝色”所致。那么,这些“蓝色”是从哪里来的呢?我们已经论证过了,1931CIE)所规定的“红原色光”中是不含有蓝、绿成分的。可见,多出来的这部分“蓝色”肯定来自于“绿原色光”。用“三通道视觉结构模型”的理论来讲,“绿原色光”在视觉系统中所产生的视信号,不仅经过了绿通道使视觉产生了“绿色”,同时它也经过了蓝通道使视觉产生了“蓝色”。

现在的问题是,这里多出来的0.00001的蓝色,是不是都来自于“绿原色光”?按“三通道视觉结构模型”的理论,光谱色也并非就是单色。这多出来的0.00001的蓝色,严谨一点讲,它应该是“绿原色光”中所含有的蓝色与685nm的光谱色中所含有蓝色的“差值”。是这个差值导致了655nm的光谱色无法与光的三原色进行匹配。这就是为什么在655nmr值出现负值的基本原理。这一原理一直可以推广到550nm处。

既然685nm处的r值出现了负值,是由于“绿原色光”中含有的“蓝色”成分造成的。那么,从660nm680nm同样也有“绿原色光”参与匹配,为什么这里就没有出现负值呢?对于这个问题是这样的:从“光谱三刺激值表”上可以看出r的值是随着光谱波长的增加而减少,到了655nm 处时就已经少到了-0.00001。显然,再往下去(即波长再增加)这个“表”的显示位数已经显示不出更小的数值了。因此,这个“表”的负值就只能写到-0.00001。按理讲,虽然从660nm680nm这一段,的值已经不足-0.00001了。但是,这一段r值在理论上讲,它毕竟还是“负”的。所以,在“表”中,660nm680nm这一段的(65)为什么光谱三刺激值会出现负值的写成0.00000,而没有负号是不合理的,不科学的。

另一方面,从“表”里可以看出,b出现负值的区域截止在545nm550nm处。这个位置有什么特殊?这个位置就是“绿原色光”波长(546.1nm)所在的位置。只不过是这个“表”给出的波长间距太大,对于546.1nm的位置,它表示不出来而已。

再往上看,从545nm440nm这一段的r出现了负值。440nm这个位置有什么特殊呢?440nm435nm 之间正是“蓝原色光”(435.8nm)所在的位置。可以说,545nm440nm这段光谱,应该是“蓝”、“绿”混合色。而在这一段里面r出现了负值,显然是由于“绿原色光”与“蓝原色光”中存在着红色成分造成的。对于r所出现的负值,严谨一点讲,应该是“绿原色光”与“蓝原色光”所含的红色与光谱色中所含红色的“差”。

再往上看,435nm 380nm这一段g出现了负值。这一段是紫色段。这一段应该是红色与蓝色的混合色段。g出现了负值,显然是由于“蓝原色光”里面含有“绿色”造成的。因为,对于“红原色光”来讲,我们已经论证过了,在“红原色光”中是不含“绿色”成分的。因此,这个绿色的来源显然就是“蓝原色光”里面多出来的。是它造成了匹配上障碍。对于g这个值,与上述同理:它应该是“蓝原色光”中所含的绿色与光谱色中所含绿色的“差值”。


参考链接:

1)https://www.zhihu.com/question/19697338

2http://blog.sina.com.cn/s/blog_53ed66d101015i7i.html

 

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。