Python使用colour库指定D50白点转色时出现CCS_ILLUMINANTS属性错误咨询
问题原因
你使用的colour(即colour-science)库版本较新,CCS_ILLUMINANTS属于旧版本的废弃API,在当前版本中已经被移除,因此触发AttributeError报错。
解决方案
有两种可行的修改方式:
方式一:直接传入白点名称(更简洁)
colour库的色彩空间转换方法本身支持直接传入白点的标准名称字符串,不需要手动获取坐标常量,修改后代码如下:
import numpy as np import colour rgb = np.array([100, 80, 20]) / 255 xyz = colour.sRGB_to_XYZ(rgb, illuminant="D50") print(colour.XYZ_to_Lab(xyz, illuminant="D50"))
方式二:使用新版API手动获取D50坐标
如果你确实需要拿到D50白点的具体色度坐标值,使用新版库对应的ILLUMINANTS常量即可:
import numpy as np import colour rgb = np.array([100, 80, 20]) / 255 D50 = colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D50'] xyz = colour.sRGB_to_XYZ(rgb, illuminant=D50) print(colour.XYZ_to_Lab(xyz, illuminant=D50))
两种方式都可以正常完成基于D50白点的RGB到Lab值转换。
内容的提问来源于stack exchange,提问作者Ghoul Fool
相关产品推荐
相关产品推荐

