getframe + frame2im + imwrite - Save figure

Hi everyone. I'd like to save a figure using statements getframe+frame2im+imwrite (without print statement). Is it possible to do it? I wrote the following code:
close all
clear all
t=[0:0.1:10];
x=t;
plot(t,x)
f=getframe(gcf);
[X,Map]=frame2im(f);
a=imwrite(X,'Figura 1.jpg')
but there is the error:
Error using imwrite Too many output arguments.
Error in Untitled2 (line 8) a=imwrite(X,'Figura 1.jpg')
Thank you very much.

回答 (2 件)

Walter Roberson
Walter Roberson 2017 年 6 月 26 日

0 投票

imwrite() has no outputs. It just creates the file. If for some reason you want to load the content of the file back in to compare to the data in X that you wrote out, then use imread() on the file.
Note: .jpg files will rarely compare exactly equal to the original data, because JPEG loses information as it compresses data.

2 件のコメント

Gennaro Arguzzi
Gennaro Arguzzi 2017 年 6 月 26 日
Hi @Walter Roberson, maybe before I need to convert figure in frame, then I assign an index using read(frame,1) and at the end I use imwrite? The problem is how can I convert figure in frame? Thank you.
Walter Roberson
Walter Roberson 2017 年 6 月 27 日
imwrite(f.cdata, 'Figura 1.jpg')

サインインしてコメントする。

Image Analyst
Image Analyst 2017 年 6 月 27 日

0 投票

1 件のコメント

Gennaro Arguzzi
Gennaro Arguzzi 2017 年 6 月 27 日
Hi @Image Analyst, I'm doing that because I want to learn all ways to do the same thing in MATLAB.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeConvert Image Type についてさらに検索

質問済み:

2017 年 6 月 26 日

コメント済み:

2017 年 6 月 27 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by