figureの画像ファイル保存を高速に実施したい
28 views (last 30 days)
Show older comments
Kazutoshi Ishioka
on 9 Mar 2020
Answered: Kazutoshi Ishioka
on 10 Mar 2020
お世話になります
figureをjpgやpngで保存したいのですが、saveas や print を使うと 0.3~0.5秒ほどかかってしまいます。
もっと高速に画像ファイルに保存する方法をご存知でしたら教えてください
参考として、以下のようなコードを試したました
figA = figure( ) ;
plot( (0:0.01:4) , sin((0:0.01:4)) , 'b-' ) ;
tic
saveas( figA , [ 'ImageTest1' '.jpg' ] ) ;
toc
tic
saveas( figA , [ 'ImageTest2' '.png' ] ) ;
toc
tic
print( [ 'ImageTest3' ],'-djpeg') ;
toc
tic
print( [ 'ImageTest4' ],'-djpeg','-r100') ;
toc
tic
print( [ 'ImageTest5' ],'-dpng') ;
toc
tic
print( [ 'ImageTest6' ],'-dpng','-r100') ;
toc
経過時間は 0.436288 秒です。
経過時間は 0.390027 秒です。
経過時間は 0.347835 秒です。
経過時間は 0.239091 秒です。
経過時間は 0.393254 秒です。
経過時間は 0.252771 秒です。
0 Comments
Accepted Answer
Kenta
on 9 Mar 2020
こちら、最速の方法かどうかは不明ですが、getframeで取得し、imwriteにすると約0.1秒になり、私のPCでは他の方法の3倍ほどになりましたがいかがでしょうか。
figA = figure( ) ;
plot( (0:0.01:4) , sin((0:0.01:4)) , 'b-' ) ;
pause(3)
tic
saveas( figA , [ 'ImageTest1' '.jpg' ] ) ;
toc
tic
saveas( figA , [ 'ImageTest2' '.png' ] ) ;
toc
tic
print( [ 'ImageTest3' ],'-djpeg') ;
toc
tic
print( [ 'ImageTest4' ],'-djpeg','-r100') ;
toc
tic
print( [ 'ImageTest5' ],'-dpng') ;
toc
tic
print( [ 'ImageTest6' ],'-dpng','-r100') ;
toc
tic
I=getframe(gcf);
imwrite(I.cdata,'imagetest7.jpg')
toc
0 Comments
More Answers (1)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!