Navigation :
Top/コンパクトなMovieを作る
- バックアップ一覧
- 現在との差分 を表示
- ソース を表示
- バックアップ を表示
- コンパクトなMovieを作る へ行く。
- 1 (2004-07-25 (日) 01:26:25)
- 2 (2004-10-28 (木) 17:48:31)
- 3 (2006-07-18 (火) 19:27:45)
- 追加された行はこの色です。
- 削除された行はこの色です。
*コンパクトな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 圧縮率はあまり良くない