我正在尝试使用数学绘制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色域范围之外的像素?
IE。如何确定我的xyY颜色是否在CIE 1931颜色范围之内/之外?
您可以使用颜色和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 。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句