0

我刚刚完成了将 xyY 颜色转换为 RGB 的任务。我正在使用 sRGB 颜色空间。

当我遍历 x 和 y 坐标时,这是我得到的输出: 在此处输入图像描述

白点 (D65) 用黑色像素标记。

但是,这是我应该得到的: 在此处输入图像描述

我尽力裁剪色域(我生成了边界线,然后使用 Photoshop 删除了这些边界之外),但很明显白色区域太大,红色区域太小,等等。

我测试了几种不同的 XYZ 颜色,并用我的程序和这个网站将它们转换为 RGB,它们在误差范围内匹配 ( <0.1)。

关于什么可能导致这些问题的任何想法?

编辑

看来我的输出与如何判断 xyY 颜色是否在 CIE 1931 色域内完全相同?.

(如果我不剪辑它)

这让我相信也许我没有做错任何事,但仍然没有解释为什么维基百科的色域不同。

4

1 回答 1

2

您应该显示代码,但可能我可以猜到。

颜色是三维的。使用 CIE xy 图形,只需在图形上添加一些颜色。通常它们不仅仅是投影,而是陌生的表面。

根据如何添加原色,您经常会看到两种:加法和减法。有时会有你的情况,这是错误的。

在 subractive 颜色上,您只需将数字相乘(从 0 到 1 的颜色)。加法(如您所愿):您添加组件,然后将值标准化为 Y=1(可能仅当 Y>1 时),然后进一步缩放。所以你会保持色调,但颜色不会被剪裁(注意:缩放时,你应该考虑到 R、G、B 在 Y 中的不同权重)。

您的情况似乎是错误的:您添加了颜色,然后将 R 或 G 或 B 剪辑为不超过最大值(1、100 或 255)。但这:改变色调,使颜色暗淡。(也许你只是做了减色,所以乘法,但视觉上有些不对劲)。

于 2018-03-22T15:49:05.800 回答