如何在Matlab中绘制CIE 1931颜色空间中的颜色?
我试图在已经绘制的CIE 1931颜色空间上绘制一些颜色值(坐标)。我已经导出了要绘制的XYZ颜色值,表示为如何在Matlab中绘制CIE 1931颜色空间中的颜色?,matlab,plot,colors,scatter-plot,color-space,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] I使用此函数绘制整个CIE颜色空间- 我使用了以下两个公式来计算上述代码中使用的x和y值,以绘制2种颜色为例,它生成了所示的图形/图表。这两种颜色中有一种超出了所需的光谱范围。我搞不清楚如何在显示的CIE颜色空间上绘制坐标z可以计算为z=1-x-y,以便所有颜色都适合光谱 正如所指
[X,Y,Z]
-
[50,57,10]
[36,43,15]
[28,36,8]
[25,32,14]
I使用此函数绘制整个CIE颜色空间-
我使用了以下两个公式来计算上述代码中使用的x
和y
值,以绘制2种颜色为例,它生成了所示的图形/图表。这两种颜色中有一种超出了所需的光谱范围。我搞不清楚如何在显示的CIE颜色空间上绘制坐标z
可以计算为z=1-x-y
,以便所有颜色都适合光谱
正如所指出的,错误在于我在MATLAB外部进行的颜色转换(RGB到XYZ到xyY)。在纠正错误时,以下代码产生了所需的结果
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
该图显示了在CIE 1931颜色空间中根据其x
和y
值绘制的六种颜色。
我不明白你在问什么。色度图为
x vs.y
。如何准确地合并z
值以及为什么?你到底想做什么?我只是想在CIE 1931颜色空间上绘制由[X,Y,Z]
定义的颜色。颜色不能仅用x
和y
表示。我试图用matlab来计算颜色是如何在这样的颜色空间中绘制的。有关更多详细信息,请参阅:@horchler我有一个列表,其中列出了我想根据其在CIE颜色空间中的绘图进行关联的几种颜色,即如果它们是n种颜色[c1,c2,c3…cn]
如何连接(如果它们在图形中线性增加,循环增加)。颜色可以用x
和y
表示,因此,这被称为图表(也称为颜色空间)。看起来您正在尝试绘制颜色和亮度的三维空间(其中Y
是CIE 1931的亮度)。使用rgb2xyz
,我看不出您是如何获得这些特定的xy值的。请编辑您的问题,以显示完整的可运行代码,以及如何从RGB三元组转换为XYZ三元组再转换为xyY三元组。我以为您需要三维绘图?Y在代码中的什么位置?
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