我有一個海王星表面的jpg圖像文件。我的意圖是構建紋理映射(請參閱Matlab help about this topic)。我已經使用了命令imread和文件,但jpg文件沒有色彩映射(通常,命令imread生成MxNx3矩陣,色彩映射是Mx3矩陣)。我想知道我該怎麼做。如何從MATLAB中的JPEG文件獲取顏色映射?
像圖像比1000字(有時)更有價值,我的目的是做類似的事情,但是對於海王星而言。
我有一個海王星表面的jpg圖像文件。我的意圖是構建紋理映射(請參閱Matlab help about this topic)。我已經使用了命令imread和文件,但jpg文件沒有色彩映射(通常,命令imread生成MxNx3矩陣,色彩映射是Mx3矩陣)。我想知道我該怎麼做。如何從MATLAB中的JPEG文件獲取顏色映射?
像圖像比1000字(有時)更有價值,我的目的是做類似的事情,但是對於海王星而言。
MxNx3數組是RGB數組,即在位置(x,y)處,第三維對應於紅色,綠色和藍色值的三元組。
要從RGB圖像與顏色表更改爲索引圖像,使用功能RGB2IND
[indexedImage,colorMap] = rgb2ind(rgbImage, nColors); %# set nColors to e.g. 128
這是基於喬納斯的回答我的問題的解決方案:
[X, map] = rgb2ind(imread('neptune.jpg'),128);
[x,y,z] = sphere(50);
x = 24764*x;
y = 24764*y;
z = 24764*z;
props.FaceColor= 'texture';
props.EdgeColor = 'none';
props.Cdata = flipud(X); % it is necessary to do this for getting the
% appropiate image on the sphere
surface(x,y,z,props);
colormap(map);
axis equal;
view([71 14]);
注:一張圖片可能會值0字:http://spikedmath.com/168.html – Jonas
@Jonas:哈,哈,非常好觀察。 – julian
@ kigurai:非常感謝您編輯此問題。 – julian