Yxy转RGB色彩空间转换问题

4
我正在尝试实现从Yxy颜色空间到RGB的转换方法。这是通过先将其转换为XYZ,然后再转换为RGB完成的。我发现“官方”的Yxy->XYZ矩阵为:
3.2410 -1.5374 -0.4986
-0.9692 1.8760 0.0416
0.0556 -0.2040 1.0570
这也是Matt Pharr的书《基于物理的渲染》中使用的矩阵。
另一方面,许多三维图形领域的人使用以下矩阵:
2.5651-1.1665 -0.3986
-1.0217 1.9777 0.0439
0.0753 -0.2543 1.1892
据我所知,如果x = 0.33333且y = 0.33333,则Yxy会产生灰色阴影。这确实是我用第二个矩阵得到的结果。而第一个矩阵则创建了红色的RGB值。
第二个矩阵可以工作,但它从哪里来?我发现许多人在他们的示例代码中使用它,但没有人真正解释它是否有物理背景。
提前感谢您的帮助。
1个回答

3
从xyY到XYZ的转换是非线性的,即不能通过矩阵乘法计算。来自维基百科关于CIE 1931色彩空间的说明:
X = Y / y * x
Z = Y / y * ( 1 - x - y )

您的两个矩阵似乎都是用于进行XYZ到RGB转换的。第一个使用了sRGB原色和白点,第二个使用了非常接近sRGB的原色(绿色具有 x = 0.29, y=0.60)以及一个x = 0.334, y = 0.334 的白点。
如果您希望使用其他RGB原色和白点,可以在 http://brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html 上找到一个列表。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接