如何在Matlab中绘制CIE 1931色彩空间上的颜色?

时间:2015-06-07 13:39:20

标签: matlab plot colors scatter-plot color-space

我正在尝试在已经绘制的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

我使用以下两个公式来计算上面代码中使用的xy值来绘制2种颜色作为示例,并生成显示的图形/图形。 2种颜色中的一种超出了所需的色谱范围。我很困惑如何在显示的CIE颜色空间上绘制z坐标,可以计算为z=1-x-y,以便所有颜色都适合光谱。

Formula to calculate x

Formula to calculate y

Generated Plot/Figure

1 个答案:

答案 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

该图显示了根据xy值在CIE 1931颜色空间中绘制的六种颜色。 The resultant graph