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

时间:2015-08-09 05:57:43

标签: image matlab

道歉,如果这是一个骗局,我一直在寻找超过一个小时,但搜索条件都非常广泛,我只是得到相同的结果。我也是matlab的新手,所以对任何误解表示道歉。

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

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

Output from <code>image</code> function

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

Output from <code>imwrite</code> function on same input

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

imread

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

是否有某种方法可以调用matrix = rand(20); imwrite(matrix, winter(256), 'filename.png'); 函数,使其不显示图形窗口,然后保存到文件中?类似于在matplotlib中调用image然后调用imshow的东西。

1 个答案:

答案 0 :(得分:3)

这样做:

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