Matlab動畫製作(四)——動畫的保存

Matlab動畫製作(四)——動畫的保存

MATLAB動畫保存只對電影動畫有意義,因爲其他兩種都是實時動畫,一眨眼過去了,而電影動畫是先將動畫一幀一幀的保存下來,在使用movie函數播放。它的好處是,運行一次MATLAB程序就可以播放無數次,只要你的幀數據還在。

但是這還是不方便,由於它沒法脫離MATLAB環境,很討厭。還好MATLAB爲我們提供了movie2avi函數,它可以把動畫直接轉換成avi文件,而avi文件則可以脫離Matalb環境而在其他地方運行了。

  1. function avimake
  2. warning off;
  3. load data
  4. [M,N,K]=size(data);
  5. data=data/(max(abs(data(:))));
  6. aviobj = avifile('mymovie.avi','fps',10);
  7. for kk=1:10:K
  8. imagesc(data(:,:,kk));
  9. set(gca,'clim',[-1 1]);
  10. colormap(hsv(128))
  11. frame = getframe(gca);
  12. aviobj = addframe(aviobj,frame);
  13. end
  14. aviobj = close(aviobj);
複製代碼

另外也可以直接保存gif動畫

  1. for i = 1:length(x)

    % 這裏是繪圖命令

  1. drawnow; % 刷新屏幕
  2. pause(0.05)
  3. f = getframe(gcf);
  4. imind = frame2im(f);
  5. [imind,cm] = rgb2ind(imind,256);
  6. if i == 1
  7. imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.1);
  8. else
  9. imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.1);
  10. end
  11. end
  12. 詳情請見:http://www.matlabsky.com/thread-595-1-1.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章