同様の質問についてstackoverflowを検索したところ、「movie2avi-frame-size-error-and-keeping-frame-size-constant」という質問が見つかりました。残念ながら、そこにある答えは私の問題を解決しませんでした (xlim、ylim、zlim の使用が提案されています)。
以下では、他の場所で与えられたよく知られた例を少し修正したバージョンを送ります。
%# figure
figure, set(gcf, 'Color','white')
Z = peaks; surf(Z); axis tight
set(gca, 'nextplot','replacechildren', 'Visible','off');
[az,el]=view;
xl=xlim;
yl=ylim;
zl=zlim;
%# preallocate
nFrames = 20;
mov(1:nFrames) = struct('cdata',[], 'colormap',[]);
%# create movie
for k=1:nFrames
view([(az-k*10) el]);
xlim(xl);ylim(yl);zlim(zl);
drawnow;pause(0.1);
mov(k) = getframe(gca);
end
close(gcf)
%# save as AVI file, and open it using system video player
movie2avi(mov, 'myPeaks1.avi', 'compression','None', 'fps',10);
アイデアは、フィギュアを回転させてムービーを作成することです。最後のコマンド、つまり movie2avi を除いて、すべて正常に動作します。エラーメッセージは
Error using avifile/addframe>ValidateFrame (line 290)
Frame must be 435 by 344.
Error in avifile/addframe (line 158)
ValidateFrame(aviobj,width, height,dims);
Error in movie2avi (line 67)
avimov = addframe(avimov,mov);
Error in more_video_test (line 24)
movie2avi(mov, 'myPeaks1.avi', 'compression','None', 'fps',10);
私はここでstackoverflowのアプローチを見て、ビデオをマットラボで作成し、次のことを発見しました:
a) 解決策 ffmpeg は機能しますが、回避したいと思います。
b) 他のすべてのソリューションは QTWriter でも失敗しました。これらの他のすべてのソリューションが機能するように、フレーム サイズを修正するにはどうすればよいですか?
どうもありがとう。
エド