我正在尝试在已经绘制的CIE 1931色彩空间上绘制几个颜色值(坐标)。我已经得出了我想绘制的XYZ颜色值,表示为[X, Y, Z]
-
[50, 57, 10]
[36, 43, 15]
[28, 36, 8]
[25, 32, 14]
我使用此功能绘制整个CIE色彩空间 - http://www.mathworks.com/matlabcentral/fileexchange/40640-computational-colour-science-using-matlab-2e/content//cieplot.m
cieplot();
hold on
x=[0.42 0.58]
y=[0.48 0.45];
scatter(x,y);
hold off
我使用以下两个公式来计算上面代码中使用的x
和y
值来绘制2种颜色作为示例,并生成显示的图形/图形。 2种颜色中的一种超出了所需的色谱范围。我很困惑如何在显示的CIE颜色空间上绘制z
坐标,可以计算为z=1-x-y
,以便所有颜色都适合光谱。
答案 0 :(得分:0)
正如horchler指出的那样,错误在于我的颜色转换(RGB到XYZ到xyY),这是我在MATLAB外部完成的。在纠正错误时,以下代码产生了所需的结果。
cieplot();
hold on
x=[0.42 0.38 0.388 0.352 0.344 0.281]
y=[0.48 0.45 0.5 0.45 0.452 0.352];
scatter(x,y,10,'filled');
i=1;
a=[1 2 3 4 5 6];
strValues = strtrim(cellstr(num2str(a(:),'(%d)')));
text(x,y,strValues,'VerticalAlignment','bottom');
hold off
该图显示了根据x
和y
值在CIE 1931颜色空间中绘制的六种颜色。