開発のヒホ

iOSとかAndroidとかのアプリを開発するのに四苦八苦するブログ

MATLABでgifアニメーションを作る

 MATLABでfigureのgifアニメーションを作ろうとしたのですが、
 なんとなく画像ファイル群からgifファイルを作りたいと思い、試行錯誤しました。

 MATLABsystem関数でconvertを呼び、画像ファイル群をgifファイルに変換します。
 汎用性は高いのですが、設定がとても面倒です。

0. 手順


  1. Homebrewのインストール
  2. imagemagickをインストール
  3. ghostscriptをインストール
  4. Gifに変換する関数を作る
  5. 使用方法

-1. 手っ取り早く導入する


 Homebrewのインストールが完了している前提です。

# (Terminalで)
brew update
brew install imagemagick
brew install ghostscript
% (MATLABで)
setenv('PATH', [getenv('PATH') ':/usr/local/bin']) ;
setenv('DYLD_LIBRARY_PATH', '/usr/local/bin/') ;

Gifに変換するMATLABコード

function [succ] = HIImageConvert2GIF( regu_path, path_out, delay_ms )

if nargin < 3
    delay_ms = 1000 ;
end

[status, cmdout] = system('convert') ;
if status ~= 0
    warning( cmdout ) ;
    succ = false ;
    return 
end

delay = round( delay_ms / 10 ) ;
[status, cmdout] = system(['convert -colorspace sRGB -loop 0 -delay ' num2str(delay) ' ' regu_path ' ' path_out]) ;
if status ~= 0
    warning( cmdout ) ;
    succ = false ;
    return 
end

succ = true ;

5. 使用方法


使用例

% testフォルダ内のpngファイルをまとめてgifファイルにする
HIImageConvert2GIF('test/*.png', 'test/test.gif', 400) ;