色度图的问题

Posted MathOnAir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了色度图的问题相关的知识,希望对你有一定的参考价值。

色度图的问题

  三基色原理说明了所有颜色都可以看作是R,G,B的不同组合,而色度图有说,在上面的红、绿、蓝三点围成的三角形不包括色度图上面所有的颜色,所以只用三基色不能组合得到所有的可视颜色。这是为什么呢?

  为什么三原色不能表示所有颜色,这个得从三刺激理论说起:
  可见光的波长范围大致在390nm700nm之间,但人类只能在几nm这个尺度上感受到这些光的区别,也就是说,对于纯色光(只含一种波长的光),人类大概只能识别100种。基于此,有人提出了人眼中有100种感受不同波长光的光感受体,也有人认为有67种不同的光感受体。但最被认可的是ThomasYoungHermannvonHelmholtz的三刺激理论。三刺激理论认为,人眼中含有三种不同的光感受体。这种猜想后来被证实,确实存在三种不同的视锥细胞,分别能够感应红、绿、蓝三种光的刺激。下图是三种细胞对不同波长光的响应曲线,分别在420nm534nm564nm达到高峰,注意,这三种波长的光并不能真正对应到蓝、绿、红色,所以,严格的说,这三种受体分别应该称为长波、中波、短波光感受体。

技术分享

  下图描述了经典的颜色匹配实验,左侧是白板,在上方发射单一波长的纯色光,下方可以发射三种不同波长的光,并可以调整它们的强度,人眼透过狭缝去观察上下两块板的颜色是否相同。
技术分享

  这三种色光通常是700nm(红色)、546.1nm(绿色)和435.8nm(蓝色)三种光,如果我们把可见的单色光都用三色光匹配出来,就可以得到下图:
  
技术分享

  注意,在一段波长范围内,红色光的刺激值出现了负值。这是由于无论如何调整三色光,都无法匹配过于饱和的单色光,只好将红色光与待匹配的单色光混合(也就是将红色光的发光器转移到上方),以降低其饱和度。
  R,G,B是色彩匹配函数rˉ(λ)gˉ(λ)bˉ(λ)的值,按如下公式定义:
r=R/(R+G+B)
g=G/(R+G+B)
b=B/(R+G+B)

  很显然,r+g+b=1,如果我们知道rgb中任意两个的值,就可以确定第三个变量的值。将色彩匹配函数曲线在rg坐标系中画出,就得到rg色度图:
  
技术分享

  由于rg会出现负值,为了方便计算,CIE引入了XYZ空间,令
X=0.490R+0.310G+0.200B
Y=0.177R+0.812G+0.011B
Z=0.010G+0.990B
就得到XYZ的颜色匹配曲线,

  
技术分享

  如果我们定义xy为:
x=X/(X+Y+Z)
y=Y/(X+Y+Z)

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

  
技术分享

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


节选自知乎


















以上是关于色度图的问题的主要内容,如果未能解决你的问题,请参考以下文章

二分图判断-笔试题

从 HSV 中提取色度/相对色度

数字色度计显示本机值的色彩空间是啥

如何计算二维对数色度?

禁用 Java ImageIO 色度二次采样

H.264编码YUV422的4*4色度编码