揭秘色彩学中的XYZ色彩空间

XYZ模型是什么

CIE 1931 XYZ色彩空间(也叫做CIE 1931色彩空间)是其中一个最先采用数学方式来定义的色彩空间,它由国际照明委员会(CIE)于1931年创立。

XYZ 色彩空间作用

XYZ 色彩空间是为了解决更精确地定义色彩而提出来的, XYZ 三个分量中, XY代表的是色度, 其中Y分量既可以代表亮度也可以代表色度, 三个分量的单位都是 cd/m2 , (或者叫做nit)。我们无法用RGB来精确定义颜色, 因为,不同的设备显示的RGB都是不一样的,不同的设备, 显示同一个RGB, 在人眼看出来是千差万别的, 如果我们用XYZ定义一个设备的色彩空间, 这样就精确多了!

打个比方,如果一个颜色由XYZ表示,例如X=19 cd/m2 , Y=20 cd/m2 , Z=21 cd/m2 , 则这个颜色的亮度为 20 cd/m2 , 则色度可以由 x=X/(X+Y+Z) = 19/60, y=Y/(X+Y+Z) = 20/30 来表示。

image.png

如何准确地将R'G'B'电信号转为XYZ

  • 首先需要知道R'G'B' 的EOTF曲线,这里可以简单理解为Gamma, 然后根据Gamma 来将R'G'B' 转换为 RGB 线性信号, 比如按照如下方式
    R = powf(R', 2.2)
    G = powf(G', 2.2)
    B = powf(B', 2.2)

  • 然后需要知道RGB线信信号所在的色彩空间, 我们这里假设他是sRGB(如果没有特别说明,大部分都是这个)

  • 利用RGB->XYZ 的转换矩阵来转换即可, 比如在sRGB中我们使用如下矩阵:
    RGB2XYZ Matrix:
    0.4124, 0.3576, 0.1805
    0.2126, 0.7152, 0.0722
    0.0193, 0.1192, 0.9505

  • 对于其他的色彩空间, 需要不一样的转换矩阵, 具体可以通过r177 协议进行转换, 我在这篇文章中写出了常见色彩转换矩阵,供大家参考:https://www.jianshu.com/p/db1caf7f2920

XYZ如何转换为RGB

将上述矩阵求逆矩阵即可, 比如sRGB可以使用如下矩阵:
XYZ2RGB Matrix:
3.2410, -1.5374, -0.4986
-0.9692, 1.8760, 0.0416
0.0556, -0.2040, 1.0570

XYZ 的衍生色彩空间 L*a*b* L*u*v*

由于XYZ色彩空间所描述的色彩并不是均匀的, 如蓝色的区域就会很密, x从0.2变到0.3, 颜色会有很大的不同, 绿色的y分量从0.7变到0.8 颜色只改变了一点点, 所以我们需要一个更加均匀的色彩空间CIE 1976 Lab 和 CIE 1976 Luv, 其中, Lab 计算起来会比Luv复杂一些, Lab一般用于印刷纺织行业, Luv主要用于电视工业

CIE 1976 L*u*v*

XYZ转L*a*b*方法

image.png

XYZ转L*u*v*方法

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容