我想知道是否有任何数学方法来确定CIE颜色空间中的可见光谱/色域的边界(例如 Lab,XYZ)。先感谢您!
答案 0 :(得分:2)
正如boscarol指出的那样,人类色域的边界由你决定使用的"color matching functions"
确定,它指的是你需要的"standard observer"
类型,即{{1} }或2° (1931, often used)
,或类似10° (1964, a bit rare)
要获得您在邮件中添加的cvrl.org proposed 2006 observers (2° or 10°)
中的积分,您必须将转化CIE xy 1931 chromaticity diagram
应用于标准&中可找到的3种颜色匹配函数XYZ to Yxy
#39;观察者CMF数据,例如。在这里:http://www.cvrl.org/然后检查x_bar, y_bar and z_bar
并选择一个文件进行下载。
对于每个波长,CMFs
(人类观察者的色域的极限)的坐标是spectrum locus
转换所获得的xy
坐标,这是,前者。在Python 2.7中:
XYZ to Yxy
编辑我忘了提到def XYZ_to_Yxy(X,Y,Z):
"""for each wavelength of the CMFs, you will replace X, Y, Z by x_bar, y_bar, z_bar here..."""
x = X/(X+Y+Z)
y = Y/(X+Y+Z)
return Y,x,y
只是限制的曲线部分。底部的直线称为spectrum locus
,并且为了在图表中获得其xy坐标,您可以简单地在与"line of purples"
(蓝紫色)对应的点和一个点之间追踪一条直线。 380 nm
(极端红色)。
这项技术的不足之处在于它只会给你730 nm
(2D)的限制,而真正的设备或色域应该在chromaticity
要解决这个问题更复杂,有一些算法可用于绘制3D
中的色域,例如本网站上的某处描述:
http://www.brucelindbloom.com/index.html?LabGamutDisplayHelp.html
祝你好运!