我想录制来自网络摄像头的视频

时间:2012-08-31 16:47:23

标签: matlab webcam video-recording

我正在使用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);

请帮助我。

谢谢。

1 个答案:

答案 0 :(得分:0)

在这里工作得很好,虽然我不得不将压缩更改为'无',因为RLE和MSVC将无法使用我正在使用的真彩色图像,而indeo / cinepak将无法与x64一起使用。 (不是任何版本的indeo,奇怪的是)

我的猜测是你在drawnow命令之后需要一个imshow来清除缓冲区,这样你才能复制一张图像。我第一次运行它时产生了一个不同的错误,这似乎证实了这一点,但我无法重现那个错误。它肯定适用于drawow;英寸

更新:对于任何运行win7 x64的人,您都应该可以使用“i420”作为您的编解码器。使用它,上面的代码可以在imshow之后使用drawnow或者不适用于我。