我对Matlab很新,虽然我知道其他一些编程语言,所以如果这很简单,请原谅我。我无法在StackOverflow或其他地方找到任何答案。
我使用以下代码生成一个数字:
figure(6),imageplot(P); drawnow;
看起来像这样:
然后,我使用以下命令将此图像保存到计算机:
imwrite(P, 'images/plot.png');
结果图像很小,缺少一些颜色信息:
但是,如果我在打开的图形(图像#1)中使用保存功能并手动保存,我会得到我想要的,这就是存储在我计算机上的精确图像。
我该怎么编程呢?我假设imwrite()只是直接写图像,但显然我做错了。有什么建议?也许它与imageplot命令有关?我似乎无法用imwrite工作。
更新:根据以下评论,我已经开始使用“imresize”和“最近”选项。这样可以正确地缩放图像,但是得到的图像仍然比我点击图中的“保存”按钮时更奇怪(因此信息更少)。
图片保存的图片:
图像使用“imresize”和“nearest”选项:
答案 0 :(得分:3)
MATLAB imwrite
命令可以精确保存图像矩阵中指定的像素数。这是计算的实际结果;输出“微小”的原因是因为它应该是。为了使它更大,可以根据需要简单地缩放/缩放它。
保存图选项会有一些完全不同的功能:它会在图窗口中对您获得的输出进行光栅化,并为您提供将其保存为图像的选项。这一点很明显,当你这样做时,除了你的结果之外你还会获得一个白色背景,这实际上只是你保存之前看到的灰色背景;这可以通过在使用保存选项之前调整图形窗口来调整。
如果您希望简单地使输出数字更大,我建议您使用imresize
命令中的某些内容。
比如说,如果您希望默认大小是实际结果大小的两倍,只需使用:
imresize(P, 2.0);
如需更多选项,请尝试help imresize
。
答案 1 :(得分:2)
图中“另存为...”功能所需的命令称为“打印”。我经常使用
print(gcf, '-dpng', 'some_filename.png')
或
print(gcf, '-depsc', 'some_filename.eps','-r0')
保存屏幕上显示的数字。格式png提供了小的文件大小和卓越的质量,大多数图像查看器和浏览器都能理解它。 eps格式是矢量格式,我用于printig。 '-r0'选项指定“使用与屏幕分辨率相同的大小”作为矢量格式属性。