Yxy到RGB转换

时间:2011-08-18 07:48:14

标签: image-processing 3d

我正在尝试实现从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的书“基于物理的渲染”中使用的那个。

另一方面,3D图形领域的许多人使用

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 个答案:

答案 0 :(得分:1)

从xyY到XYZ的转换是非线性的,即它不能通过矩阵乘法计算。 来自维基百科CIE 1931 color space

X = Y / y * x
Z = Y / y * ( 1 - x - y )

您的矩阵似乎都是针对XYZ到RGB的转换。第一个由sRGB初选和白点给出。第二种原则非常接近sRGB(绿色有x = 0.29y = 0.60)和x = 0.334y = 0.334白点。

如果您想使用其他RGB原色和白点,有一个列表:http://brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html