Я хочу записать видео с веб-камеры

Я использую для этого код 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);

Пожалуйста, помогите мне с этим.

Спасибо.


person akash patel    schedule 31.08.2012    source источник


Ответы (1)


Здесь работает нормально, хотя мне пришлось изменить сжатие на «Нет», поскольку RLE и MSVC не будут работать с изображением в истинном цвете, которое я использовал, а indeo/cinepak не будет работать с x64. (Как ни странно, ни одна из версий indeo)

Я предполагаю, что вам нужно drawnow после вашей команды imshow, чтобы очистить буфер, чтобы у вас было изображение для копирования. Я выдал другую ошибку при первом запуске, что, казалось, подтверждало это, но я не смог воспроизвести ее. Это определенно работает с отрисовкой; в.

Обновление: для всех, кто использует win7 x64, вы должны иметь возможность использовать «i420» в качестве кодека. Используя это, приведенный выше код отлично работает для меня как с drawnow после imshow, так и без него.

person Salain    schedule 31.08.2012