我正在尝试使用数学绘制CIE 1931色域。
我采用xyY颜色,Y固定为1.0,然后将x和y从0.0变为1.0。
如果我将得到的颜色绘制成图像(即(x,y)处的像素是我的xyY颜色转换为RGB),我会在其中间某处找到CIE 1931色域的漂亮照片,就像这样:
xyY从0.0到1.0:
现在我想要经典的舌形图像,所以我的问题是:如何在CIE 1931色域范围之外剔除像素?
即。如何判断我的xyY颜色是否在CIE 1931颜色范围内/外?
答案 0 :(得分:0)
您可以使用Colour和colour.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。