#MATLABでかんたん動画作成
##はじめに
MATLABで動画作ってTwitterに上げたい! みたいな動機で、MATLABで動画を作成してmp4に書き出すことをやってみました。
その時のコードを備忘録もかねてこちらにまとめておきます。
この例ではバーバーポール(美容室にあるやつ)もどきを3Dで作製して連続表示しています。
##コード
figure();
% 表示する図の準備
t = (0:0.1:10);
f = 1;
% 余談ですがMATLABだとiは虚数なのでiiを使っています
for ii = (0:0.3:6)
for jj = (0:0.02:1.6)
plot3(cos(t-ii+jj), sin(t-ii+jj), t*2, 'r-');
plot3(cos(pi/2+t-ii+jj), sin(pi/2+t-ii+jj), t*2, 'w-');
plot3(cos(pi+t-ii+jj), sin(pi+t-ii+jj), t*2, 'b-');
plot3(cos(3*pi/2+t-ii+jj), sin(3*pi/2+t-ii+jj), t*2, 'w-');
hold on;
end
hold off;
grid on;
xlim([-3 3])
ylim([-3 3])
% 今回はなくても問題ないです
drawnow;
% getframe()でも動いて、その場合はまた少し違った図になります
% が、途中で表示範囲を変えたりするとエラー吐くのでgetframe(gcf)の方が安全だと思っています
myMovie(f) = getframe(gcf);
f = f+1;
end
% 好きな形式で書き出し
% 保存場所はコードと同じ場所です
v = VideoWriter('myMovie.mp4', 'MPEG-4');
% ゆっくり表示したかったのでフレームレートを初期値より下げています
v.FrameRate = 10;
open(v);
writeVideo(v, myMovie)
close(v);
##おわりに
いかがでしたか??
MATLABは動画作成ソフトではありません。