如何在MATLAB中从JPEG文件中获取色彩映射?

时间:2011-10-24 00:38:03

标签: image matlab image-processing 3d

我有一个海王星表面的jpg图像文件。我的目的是构建纹理映射(参见Matlab help about this topic)。我已经使用命令imread和文件,但jpg文件没有colormap(一般来说,命令imread产生MxNx3矩阵,色图是Mx3矩阵)。我想知道如何做到这一点。

就像一张图像比1000字(有时候)更有价值,我的目的是做example之类的东西,但对于海王星来说。

2 个答案:

答案 0 :(得分:7)

MxNx3阵列是RGB阵列,即在位置(x,y),第三维对应于红色,绿色和蓝色值的三元组。

要使用色彩图从RGB图像更改为索引图像,请使用函数RGB2IND

[indexedImage,colorMap] = rgb2ind(rgbImage, nColors); %# set nColors to e.g. 128 

答案 1 :(得分:2)

根据Jonas的回答,这是我的问题的解决方案:

[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]);
相关问题