Image matlab中颜色映射的调整

Image matlab中颜色映射的调整,image,matlab,Image,Matlab,我正在使用imwrite在matlab上打印图像: imagesc(imageM); imwrite(imageM, jet(N), 'fileName.jpg'); 我无法获得与在保存的图形上使用imagesc获得的颜色相同的颜色。我尝试在jet中使用不同的N值(矩阵imageM的值介于2和180之间)。然而,我不能得到同样的结果。我如何选择jet中的范围以获得与使用imagesc相同的颜色?您需要缩放imageM或colormap中的值,因为这正是imagesc所做的。在你的图像中,你有1

我正在使用imwrite在matlab上打印图像:

imagesc(imageM);
imwrite(imageM, jet(N), 'fileName.jpg');

我无法获得与在保存的图形上使用imagesc获得的颜色相同的颜色。我尝试在jet中使用不同的N值(矩阵imageM的值介于2和180之间)。然而,我不能得到同样的结果。我如何选择jet中的范围以获得与使用imagesc相同的颜色?

您需要缩放
imageM
或colormap中的值,因为这正是
imagesc
所做的。在你的图像中,你有180-2=178步,所以

imgmin = min(imageM(:));
imgrange = range(imageM(:));

imwrite(imageM-imgmin, jet(imgrange) , 'fileName.jpg')
我们应该做到这一点

否则,您可以使用具有64个条目的标准颜色映射:

imwrite((imageM-imgmin)*64/imgrange, jet, 'fileName.jpg')
试试这个:

imagesc(img)

cmap = get(gcf,'Colormap');
X = ind2rgb(img, cmap);
imwrite(X, 'out.png');

什么类型有
imageM
?还要研究使用:
img=im2double(img,'index')这应该也可以。但同样,您需要缩放图像值以使用完整的颜色贴图。