Matlab 我想从网络摄像头录制视频
我正在使用Matlab代码 但当我运行它时,它会显示错误 代码:Matlab 我想从网络摄像头录制视频,matlab,webcam,video-recording,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
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);
错误:
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);
请帮我做这个
谢谢。在这里工作得很好,不过我不得不将压缩改为“无”,因为RLE和MSVC不适用于我使用的truecolor图像,indeo/cinepak也不适用于x64。(奇怪的是,indeo的两个版本都不是) 我猜您需要在
imshow
命令之后使用drawnow
来清除缓冲区,这样您就可以复制图像了。第一次运行时,我产生了一个不同的错误,这似乎证实了这一点,但我无法重现那个错误。它肯定与drawnow一起工作;在
更新:对于运行win7 x64的任何人,您应该能够使用“i420”作为编解码器。在imshow之后使用drawnow
in与否,上述代码对我来说都很好