为什么RGB到XYZ颜色转换之间存在这样的差异?

时间:2013-07-20 17:25:10

标签: colors rgb color-space

最近我一直在尝试理解在RGB色彩空间和CIE-XYZ色彩空间之间进行转换的代码,但似乎我尝试的每个不同的计算器都给出了截然不同的结果。 例如,尝试将(255,100,70)转换为XYZ会产生以下结果,即使明确地将d50用于所有内容:

  • EasyRGB给出(46.903,30.817,9.270)
  • Wolfram Alpha给出(0.7493,0.7245,0.6308)
  • Bruce Lindbloom.com给出(0.493910,0.317574,0.070047)
  • Java给出(0.95880127,0.99554443,0.8227539)

我不知道这些可能会给出如此不同的答案。哪一个是正确的(如果有的话)?是否存在某些我遗漏的参数在这些网站之间有所不同?

2 个答案:

答案 0 :(得分:2)

因为有不同的RGB空间,而不仅仅是一个。

在此页面上有通用公式:

http://brucelindbloom.com/index.html?Eqn_RGB_to_XYZ.html

但通用公式取决于某些参数,例如矩阵M,每个RGB空间都不同。

答案 1 :(得分:0)

如果你仔细阅读Calculator,你会发现在将这些值转换为XYZ之前需要定义很多参数。因此,它不是直接计算,在任何给定条件下都适用。这样做时你必须考虑很多变量(也知道哪些变量不会影响你的计算)。

计算还取决于您尝试开发的应用程序。感知颜色的方法与在屏幕上再现颜色的方法不同。

Colour calculator