是否可以从imagesc
的输出中将图像写入rgb,因为肉眼可以看到?例如:
image=imagesc(rand(100,100)); %This is technically incorrect, but to show you what I meant
imwrite(image,'filename.bmp');
提前致谢!
答案 0 :(得分:3)
以下是Cris Luengo方法的替代方法,该方法不依赖于imagesc
生成的实际情节。
% load a test image
I = rgb2gray(imread('peppers.png'));
% recreate image
cmap = colormap(); % grab current colormap
ncolors = size(cmap,1);
% do what imagesc does
Iind = double(I) - double(min(I(:)));
Iind = Iind / max(Iind(:));
% quantize image
Iind = round(Iind * ncolors + 0.5);
Iind(Iind > ncolors) = ncolors;
Iind(Iind < 1) = 1;
% convert to RGB from indexed image using cmap as palette
Irgb = ind2rgb(Iind,cmap);
imwrite(Irgb, 'filename.bmp');
imagesc
和 filename.bmp
答案 1 :(得分:1)
使用print
功能。如果你给它一个正确的“设备”,它会将图形窗口的内容写入图像文件:
print -r0 -dbmp filename.bmp
对图形窗口大小和轴位置的一些调整将使图像在一个屏幕像素上显示一个图像像素,并且轴周围没有空间:
set(gca,'units','normalized','position',[0,0,1,1]);
set(gcf,'units','pixels','position',[10,10,100,100])
(两个100值表示图像的宽度和高度。)