为什么imagesc会更改颜色映射(MATLAB)

为什么imagesc会更改颜色映射(MATLAB),image,matlab,image-processing,computer-vision,grayscale,Image,Matlab,Image Processing,Computer Vision,Grayscale,我想使用imagesc裁剪并显示黑白(灰度?)图像。然而,它一直以rgb显示图像,使其看起来像来自红外相机!有保留原始颜色的提示吗?您需要更改颜色贴图。运行imagesc后,使用colormap('Gray')。您可以使用colormap('default')将默认的colormap设置为当前的colormap,尽管我仍然很好奇为什么它选择在RGB中显示我的灰色图像@blaughli:因为您的“灰度图像”实际上可能是一个索引彩色图像(即,二维矩阵,而不是三维RGB图像),其中图像数组中的值在没有

我想使用
imagesc
裁剪并显示黑白(灰度?)图像。然而,它一直以rgb显示图像,使其看起来像来自红外相机!有保留原始颜色的提示吗?

您需要更改颜色贴图。运行
imagesc
后,使用
colormap('Gray')
。您可以使用
colormap('default')

将默认的colormap设置为当前的colormap,尽管我仍然很好奇为什么它选择在RGB中显示我的灰色图像@blaughli:因为您的“灰度图像”实际上可能是一个索引彩色图像(即,二维矩阵,而不是三维RGB图像),其中图像数组中的值在没有相关颜色贴图的情况下毫无意义。这几乎是大多数Matlab函数的默认值。如果您想要实际的“灰度图像”,可以使用RGB图像。三个通道需要相同:
IMG=repmat(rand(100),[13])
imagesc(IMG)。当然,这需要更多的内存……此外,您可以使用
colormap(“默认”)将默认的colormap设置为当前的colormap
——因此,一旦您完成
colormap gray
一次,将其设置为默认,其余非rgb图形将使用此选项。更多信息:谢谢,休,这是一个很好的提示!