本篇隶属于文集:《零基础入门音视频开发》,查看文集全部文章,请点击文字链接。
想看最新文章,可以直接关注微信公众号:金架构
在上篇文章中,我们曾大致了解了一下CIE XYZ颜色空间。知道X、Y、Z是R、G、B的线性变换的结果,并知道Y不仅仅包含绿色,并且由于人眼感受绿色,要比红色和蓝色要亮,因此定义Y为亮度。
发完文章后我仔细看了一下,发现有几个会引起误区的地方。
1. X、Y、Z和R、G、B的关系
如果你看完上篇文章,认为X就是R(红)、Y就是G(绿)、Z就是B(红),那是因为,我没有把RGB转换成XYZ的公式进行拆分。有些读者在学校的时候,并没学过线性代数,这也包括我,不过我曾经自学过一段线性代数,所以为了能更清晰的分析CIE XYZ颜色空间,我们还是对下面这个公式分析一下。
其实这是一个简单的矩阵相乘,只要将等式右侧,第一个矩阵的每行,乘以第二个矩阵的列即可
原公式:
变换后:
这样就可以看到,X、Y、Z其实分别是R、G、B三者的组合,只不过X值将近一半是由R组成,而Y值则多半由G组成,即百分之八十都是绿色,而Z百分之九十九都是蓝色。所以上篇文章分析的把Y定位亮度,并不是Y值就是绿色,而是它包含的绿色信息最多。
现在应该对XYZ颜色空间比较清楚了吧,不过说到这,还有一个重点没有介绍,就是XYZ颜色空间在坐标系上的表现。因为制定这个颜色空间,一是为了统一颜色表示,二是它方便进行数学计算。
这张图表示了从400nm(紫色)到700nm(红色)之间的XYZ三基色刺激值,这是一个曲面向原点连线,形成的锥体,而且所有的XYZ刺激值,都落在这个正XYZ象限的椎体内。
这里坐标轴原点,相当于没有光照的黑色,而曲线边界代表纯光谱色的三基色刺激值,所以这个边界也称为光谱轨迹。光谱轨迹上的波长是单一的,所以在光谱轨迹上的颜色,代表了该颜色能达到的最大饱和度。
2. XYZ的配色方程
在XYZ中,任何一种颜色,都可以用下面这个公式表示:
C=XX+YY+ZZ
在这里,C代表颜色,加粗的X、Y、Z为三个基色单位,而X、Y、Z均为正的基色系数。当X=Y=Z时,合成白光。
说这个是因为,我们需要知道,合成的颜色的色调和饱和度,是由X、Y、Z的比值确定,这对理解接下来的xyY颜色空间很有帮助。
3. 从XYZ到xyY颜色空间
从上面我们可以看到,XYZ的使用也并不简单,而且在坐标系上,它是一个锥体,也不直观。它虽然把Y定位亮度,但是在上图中并不好展现。所以后来CIE基于XYZ,又做了一层转换。
3.1 xyY的xy是怎么来的
直接点来说,它们的关系就是下面这个公式:
这里的小写xyz称为三基色相对系数
这个公式要怎么理解呢?上面说了,在XYZ颜色空间里,当XYZ的比值不变时,合成颜色的色调和饱和度不变,也就是色度(色度是色调和饱和度的统称)不变。所以我们可以基于这个,将亮度和色度从概念上分开。既然亮度在坐标系上不太好展现,那我们就不展现。而且在管理颜色的时候,我们最关心的还是色度。
所以我们可以将X、Y、Z分别比上(X+Y+Z),只考虑它们的相对比例。这样色度将能更直观的描述,而且我们可以规定
x+y+z=1
这就相当于X、Y、Z在总值的占比之和,恒等于1。在坐标系上的表现就是,相当于把XYZ颜色椎体,投影到X+Y+Z=1的平面。
更进一步,因为x+y+z=1,所以z可以由x和y导出来,所以我们可以不考虑z,只用x和y就能描述色度。这就相当于把X+Y+Z平面,再投影到XY平面,即Z=0平面,最终这个平面,就是CIE xyY色度图。注意是色度图,它描述了色调和饱和度。
3.2 xyY颜色空间
就像上面说的,xy分别是XY对XYZ三者之和的比值,x可以理解为红色分量,y为绿色分量,而Y与XYZ中的Y一样。这样知道了Y值,既能从XYZ导出xyY,也能从xyY导出XYZ。注意这里虽然说x为红色分量,y为绿色分量,Y为亮度,但是要知道它们是怎么来的,不然很容易陷入误区。