Navigation : Top/コンパクトなMovieを作る

  • 追加された行はこの色です。
  • 削除された行はこの色です。
*コンパクトなMovieを作る
*Movieを作る

**方法1

一つの方法としては、MATファイル(MATLAB固有のバイナリデー 
タファイル)に落とすことです。 

 (例) movieデータをM、カラーマップmapとしてtest.matに保存する場合 
 >> save test M map 
 として保存

**もう少し本格的

AVIフォーマットのファイルは,version 6.0より利用できるようになりました. 

 例) 
 ix_size_movie = 640;
 iy_size_movie = 480;
 for it=1:nt 
  if it == 1 
   figure(1); 
   clf 
   figure(1); clf;
   set(gcf,'position', ... 
   [0 1024-iy_size_movie ix_size_movie iy_size_movie]); 
   image( x3i, y3i, sqrt(uji.^2+vji.^2) ); 
   axis([xf_min xf_max 0 y_max]) 
   if i_movie == 1 
    M = moviein( nt ); 
   end 
  axis manual 
  set(gca,'nextplot','replacechildren') ; 
 end 
 
 image( x3i, y3i, sqrt(uji.^2+vji.^2) ); 
 hold on 
  quiver( X2, Y2, uw, vw, 'b' ); 
 hold off 
 set(0,'Units','Pixels') 
 hsize = get(gcf,'Position'); 
  if i_movie == 1 
   M(:,it) = getframe( gcf, [0 0 hsize(3) hsize(4)] ); 
   *** 書きたい図 ***; 
   axis([x_min x_max 0 y_max]) 
   M = moviein( nt ); 
   axis manual 
   set(gca,'nextplot','replacechildren') ; 
  end 
 
  *** 書きたい図 ***; 
  set(0,'Units','Pixels') 
  hsize = get(gcf,'Position'); 
  M(:,it) = getframe( gcf, [0 0 hsize(3) hsize(4)] ); 
 end 
 movie2avi( M, file_name ); 

movieは画面の左上からの領域を保存するので,"set(gcf,'Position',[x1 x2 y1 y2])"で場所を確定しないとちゃんと作れません. 

movie2aviで作られるmovieは非圧縮なのでtmpgenc(http://www.tmpgenc.com/)でmpegにすると1/10〜1/30のサイズになります. 

**mpegを直接作る

つぎに直接MPEGファイルにする方法ですが、MATLABでは正式にはMPEG 
ファイルをサポートしていません。しかし、開発元のftpサイトに 
MPEGフォーマットでデータの書き込 み・読み込みをするための 
ファイルが提供されていますので、そちらをダウンロードしてお 
使いください。 

URL
-ftp://ftp.mathworks.com/pub/contrib/v5/graphics/mpgread 
-ftp://ftp.mathworks.com/pub/contrib/v5/graphics/mpgwrite 
圧縮率はあまり良くない