虽然我知道一些其他编程语言,但我对Matlab很陌生,所以请原谅我,如果这很简单。我无法在StackOverflow或其他地方找到任何答案。Matlab imwrite()质量
figure(6),imageplot(P); drawnow;
,看起来像这样:
我用下面的代码生成一个数字
然后我用下面的命令此图像保存到我的电脑:
imwrite(P, 'images/plot.png');
由此产生的图像很小,并且缺少一些颜色信息:
但是,如果我在打开的图形(图像#1)中使用了保存功能并手动保存,我就得到了我想要的,这就是存储在我的计算机上的确切图像。
我将如何编程呢?我认为imwrite()会直接写图像,但显然我做错了什么。有什么建议?也许它与imageplot命令有关?我似乎无法让它在imwrite中工作。
更新:基于以下评论,我已开始使用“imresize”与“最近”选项。这样可以正确缩放图像,但是由此产生的图像仍然奇怪地较暗(因此信息较少),比按下图中的“保存”按钮时更加奇怪。
图像从图中保存的:使用
图像 “imresize” 与 “最近” 选项:
你会如何将我的代码和print()函数结合起来?正如我的问题所述,我能够使用imageplot(P)查看我想要的图像。使用print(P,'-dpng','filename.png')会产生一个错误:“句柄输入必须是向量的标量,向量或单元阵列。” 我也尝试使用print(imageplot(P),' - dpng','filename.png')试图正确打印我显示的内容,但这会产生错误“输出参数太多”。 – Jake
您需要在图形手柄上使用打印 - 在绘制了矩阵P之后,'gcf'返回当前的图形句柄,如Martin J.H.使用。你也可以使用'f = figure; imageplot(P);打印(F ...);'。 –
我们走了。完美。非常感谢! – Jake