色彩空间表示与转换 | RGB 2 XYZ
前一篇文章[1]讲述了色彩空间的基础,我们看到人类的色视觉可以用一个三维的线性空间表示,人类对色彩的感知,相当于是在光谱分布这样一个无穷维的函数空间(巴拿赫空间)中,进行了一个三维投影。在此基础上,简单介绍了两个重要的线性色彩空间,CIE1931RGB和CIE1931XYZ,这两个色彩空间包含了所有人类可以感知的色彩。通过色匹配函数(ColorMatchingFunction,CMF),可以将任何一种物理上的光谱分布,转换到线性色彩空间中。虽然是同样一个线性空间,由于选取的基底不同,表示的形式也会不同,表达能力和方便程度也会有所不同。为了...
前一篇文章[1] 讲述了色彩空间的基础,我们看到人类的色视觉可以用一个三维的线性空间表示,人类对色彩的感知,相当于是在光谱分布这样一个无穷维的函数空间(巴拿赫空间)中,进行了一个三维投影。在此基础上,简单介绍了两个重要的线性色彩空间, CIE 1931 RGB 和 CIE 1931 XYZ,这两个色彩空间包含了所有人类可以感知的色彩。通过色匹配函数(Color Matching Function, CMF),可以将任何一种物理上的光谱分布,转换到线性色彩空间中。
虽然是同样一个线性空间,由于选取的基底不同,表示的形式也会不同,表达能力和方便程度也会有所不同。为了不同的用途和目的,人们发展了很多不同的线性色彩空间的表达形式。此外,人类的色视觉在某些方面还存在一定程度的非线性,所以在线性色彩空间基础上人们又发展了一些非线性的色彩空间。
由于 CIE RGB 和 CIE XYZ 两者其实是同一个线性空间的不同表达,因此两者的转换可以通过转换矩阵实现。限于篇幅,上一篇文章[2] 中对这个转换矩阵是怎么来的一笔带过了,在这篇文章中将会详细描述中间的计算过程。
1 CIE RGB 和 CIE XYZ在前一篇文章中我们已经了解到,以色匹配函数作为基底,将物理上的光谱分布投影到三维空间中,就可以得到 CIE RGB 和 CIE XYZ 色彩空间。 CIE RGB 的色匹配函数(归一化后)是这样的:
注意这里进行了归一化处理,因此曲线与上一篇文章中的曲线形状有变化。为了消除部分负数坐标,我们变换到 CIE XYZ 空间,满足一些约束条件:
所有坐标都是正的保持等能点(equal energy point)作为白色使得新的 Y 坐标能够代表明度,也就是使得新的 Y 坐标等于视觉的明度响应使得新的 Z 坐标在红光端保持为 0使得所有色彩尽可能充满新的空间在这些约束条件下,CIE 委员会设计了这两个空间之间最初的转换矩阵:
以及反变换的矩...