2011-08-18 542 views
2

我想实现从Yxy色彩空间到RGB的转换方法。这是通过首先转换为XYZ而不是RGB来完成的。我发现了“官方”的矩阵Yxy表 - > XYZ是Yxy到RGB转换

 
3.2410 -1.5374 -0.4986 

-0.9692 1.8760 0.0416 

0.0556 -0.2040 1.0570 

这也是马特·菲尔的书基于物理渲染中使用的一个。

在另一方面,很多人在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

从xyY表到XYZ的转化是非线性的,

由于即它不能由矩阵乘法计算。 从维基百科上CIE 1931 color space

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原色和白色点,请在此处列出: