在matlab中调整颜色映射

时间:2014-11-09 19:50:02

标签: image matlab

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

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

我无法获得与我在保存的数字上使用imagesc获得的颜色相同的颜色。我尝试在喷射中使用不同的N值(矩阵imageM的值在2到180之间)。但是,我无法得到相同的结果。如何选择喷射范围以获得与使用imagesc相同的颜色?

2 个答案:

答案 0 :(得分:1)

您需要缩放imageM或色彩映射中的值,因为这是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')

答案 1 :(得分:0)

试试这个:

imagesc(img)

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