Matlab从数组创建图像并保存而不显示

Posted

技术标签:

【中文标题】Matlab从数组创建图像并保存而不显示【英文标题】:Matlab create image from array and save without displaying 【发布时间】:2015-08-09 05:57:43 【问题描述】:

抱歉,如果这是一个骗局,我已经搜索了一个多小时,但搜索词都非常广泛,我只是不断得到相同的结果。此外,我对 matlab 还很陌生,如有任何误解,我深表歉意。

Anywho,我有一个 matlab 程序,它需要经常保存从矩阵生成的图像,但如果不先显示它,我就是不知道该怎么做。基本上我陷入了两个函数之间,imageimwrite,两者都只完成了我想要的一半。

image 能够获取我的矩阵并创建所需的输出,但它只是将其显示到图形窗口

imwrite 能够将图像保存到文件而不显示它,但是图像完全错误,我找不到任何可以修复它的参数。

我见过的其他问题涉及使用 imread 和管理数字和东西,但我只是在做(例如)

matrix = rand(20);
colormap(winter);
image(matrix, 'CDataMapping', 'scaled');

matrix = rand(20);
imwrite(matrix, winter(256), 'filename.png');

有什么方法可以调用image 函数,使其不显示图形窗口然后保存到文件中?类似于在 matplotlib 中调用 imshow 然后 savefig

【问题讨论】:

【参考方案1】:

这样做:

matrix = rand(20);
f = figure('visible', 'off');
colormap(winter);
image(matrix, 'CDataMapping', 'scaled');
print(f, '-dpng', 'filename.png');

【讨论】:

以上是关于Matlab从数组创建图像并保存而不显示的主要内容,如果未能解决你的问题,请参考以下文章

Wpf:从 zip 加载图像源而不保存文件

调整图像大小并显示而不保存

ASP.NET - 如何在浏览器中显示图像而不将图像保存在临时文件中?

将 Matlab 输出保存到文件,而不是在屏幕上显示

创建的图像不显示

smartgwt 保存图像文件而不是在浏览器中显示