Automatic saving a figure as an image file in Matlab

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-22 08:38:47

问题


I'm creating 49 figures in Matlab, they are all created automatically one after the other. I want them to also automatically be saved as .tif or .jpg images with names corresponding to their figure number. Can I do it? And if so,how?

the code for the creation of the figures is:

for num_picture=0:48
  ...
  figure (num_picture+1)
  imshow (screen_im)
end

The ... part is where all the calculations of screen_im are.

I want those images in order to create a movie from them, If there is a way where I can create the movie automatically form Matlab, it would be good also, actually it will be better.


回答1:


You can save current figure into a file with PRINT of SAVEAS command generating the filename using loop counter:

saveas(sprintf('img%d.tif',num_picture))

or

 print('-dtiff','-r300',sprintf('img%d.tif',num_picture))



回答2:


To answer your second question, have a look at avifile(). However, I've had better luck saving frames individually (compression quality issues if I recall correctly).

To save individual frames, you can use imwrite() or print() with a -dpng or similar option. From there, use sprintf() to generate a filename with your frame number in it, and you've got most of what you need. You'll need some sort of movie editor program (VideoMach, etc.) to turn those frames into a movie if you don't use Matlab's avifile(), however.



来源:https://stackoverflow.com/questions/4799311/automatic-saving-a-figure-as-an-image-file-in-matlab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!