0

そのためにMatlabコードを使用しています。

しかし、実行するとエラーが表示されます。

コード :

fig=figure;
set(fig,'DoubleBuffer','on');
set(gca,'xlim',[-80 80],'ylim',[-80 80],'NextPlot','replace','Visible','off');
mov = avifile('movie.avi','compression','cinepak');
mov.quality=90;
i=imread('white.jpg');
for k=1:1000
imshow(i);
F = getframe(gca);
mov = addframe(mov,F);
end
mov = close(mov);

エラー:

??? Error using ==> capturescreen
Figure destroyed during getframe

Error in ==> getframe at 35
x=capturescreen(varargin{:});

Error in ==> a at 9
F = getframe(gca);

これで私を助けてください。

ありがとうございました。

4

1 に答える 1

0

ここでは問題なく動作しますが、RLE と MSVC は使用していたトゥルーカラー イメージでは動作せず、indeo/cinepak は x64 では動作しないため、圧縮を「なし」に変更する必要がありました。(奇妙なことに、どちらのバージョンの indeo でもありません)

私の推測では、コピーするイメージがあるので、バッファをクリアするにはコマンドのdrawnow後に必要だったのです。imshow初めて実行したときに別のエラーが発生しました。これはそれを確認しているように見えましたが、再現できませんでした。drawow で確実に動作します。の。

更新: win7 x64 を実行している場合は、コーデックとして「i420」を使用できるはずです。それを使用すると、上記のコードdrawnowは、imshow の後であるかどうかに関係なく、私にとっては正常に機能します。

于 2012-08-31T17:29:40.600 に答える