2015-06-07 867 views
3

我試圖在已繪製的CIE 1931顏色空間上繪製幾個顏色值(座標)。如何在Matlab中繪製CIE 1931色彩空間上的顏色?

[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

我爲 [X, Y, Z]衍生我要繪製的XYZ色彩值,記
cieplot(); 
hold on 
x=[0.42 0.58] 
y=[0.48 0.45]; 
scatter(x,y); 
hold off 

我用下面的兩個公式來計算xy的值es用於上面的代碼中,繪製2種顏色作爲示例,並生成所示的圖形/圖形。兩種顏色之一超出了所需的色譜。我很困惑如何繪製z座標,在所顯示的CIE顏色空間上可以計算爲z=1-x-y,以便所有顏色都符合光譜範圍。

Formula to calculate x

Formula to calculate y

Generated Plot/Figure

+0

我很困惑你在問什麼。色度圖是「x vs y」。如何合併「z」值以及爲什麼?你究竟在做什麼? – horchler

+0

我試圖簡單地在CIE 1931色彩空間上繪製由[[X,Y,Z]]定義的顏色。顏色不能僅由'x'和'y'表示。我試圖通過使用matlab來了解顏色在這種顏色空間中的繪製方式。請參考以下詳細信息:http://en.wikipedia.org/wiki/CIE_1931_color_space#CIE_xy_chromaticity_diagram_and_the_CIE_xyY_color_space –

+0

@horchler我有一個列表,我想要關聯的幾種顏色,取決於他們在CIE色彩空間的情節,即如果他們是n個顏色'[c1,c2,c3 ... cn]'連接怎麼樣(如果它們線性增加,在圖中是循環的)。 –

回答

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 

該曲線圖示出在CIE 1931顏色空間繪製爲每其xy值六種顏色。 The resultant graph

+0

我以爲你想要一個三維情節? Y代碼在哪裏? – posfan12