MATLAB图像处理出错?急求

如图,第一张是代码,读取图片然后将彩色颜色映射表map转换成灰度颜色映射表newmap,但是运行时总是说map不是三位数组。查了下很多人说是图像是黑白的或者单通道的,但是图三中显示图像是三维的RGB图啊 。。求大神解惑

第1个回答  推荐于2016-06-14
原来的图像数据是X,不是map
应该是
newmap=rgb2gray(X);
........imshow(X);
........imshow(newmap);追问

是的。原来的图像是X,但是map是原图像X的颜色映射表,rgb2gray( )函数是将彩色映射表转化为灰度颜色映射表newmap.

追答

对于原来是24四位也就是RGB三通道各8位的图像来说是没有colormap的
因为R,G,B都用8位表示,已经不需要颜色映射表了
所以你用imread得到的map是一个空矩阵,
如果你是想显示彩色和黑白两种图像,按我上面的代码就可以了
已经保存为rgb三通道的图像是没有colormap的

本回答被提问者和网友采纳