如何判断xyY颜色是否在CIE 1931色域内?

时间:2016-03-23 17:07:19

标签: colors

我正在尝试使用数学绘制CIE 1931色域。

我采用xyY颜色,Y固定为1.0,然后将x和y从0.0变为1.0。

如果我将得到的颜色绘制成图像(即(x,y)处的像素是我的xyY颜色转换为RGB),我会在其中间某处找到CIE 1931色域的漂亮照片,就像这样:

xyY从0.0到1.0:

image

现在我想要经典的舌形图像,所以我的问题是:如何在CIE 1931色域范围之外剔除像素?

即。如何判断我的xyY颜色是否在CIE 1931颜色范围内/外?

1 个答案:

答案 0 :(得分:0)

您可以使用Colourcolour.is_within_visible_spectrum定义:

>>> import numpy as np
>>> is_within_visible_spectrum(np.array([0.3205, 0.4131, 0.51]))
array(True, dtype=bool)
>>> a = np.array([[0.3205, 0.4131, 0.51],
...               [-0.0005, 0.0031, 0.001]])
>>> is_within_visible_spectrum(a)
array([ True, False], dtype=bool)

请注意,此定义需要CIE XYZ三刺激值,因此您必须使用colour.xyY_to_XYZ定义将CIE xyY色彩空间值转换为XYZ。