我正在使用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);
请帮助我。
谢谢。
答案 0 :(得分:0)
在这里工作得很好,虽然我不得不将压缩更改为'无',因为RLE和MSVC将无法使用我正在使用的真彩色图像,而indeo / cinepak将无法与x64一起使用。 (不是任何版本的indeo,奇怪的是)
我的猜测是你在drawnow
命令之后需要一个imshow
来清除缓冲区,这样你才能复制一张图像。我第一次运行它时产生了一个不同的错误,这似乎证实了这一点,但我无法重现那个错误。它肯定适用于drawow;英寸
更新:对于任何运行win7 x64的人,您都应该可以使用“i420”作为您的编解码器。使用它,上面的代码可以在imshow之后使用drawnow
或者不适用于我。