我正在使用imwrite在matlab上打印图像:
imagesc(imageM);
imwrite(imageM, jet(N), 'fileName.jpg');
我无法获得与我在保存的数字上使用imagesc获得的颜色相同的颜色。我尝试在喷射中使用不同的N值(矩阵imageM的值在2到180之间)。但是,我无法得到相同的结果。如何选择喷射范围以获得与使用imagesc相同的颜色?
答案 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');