Aquisição de imagem em tempo real utilizando o Matlab

Para fazer o download do programa clicar aqui.

Imagem capturada pelo matlab

A própria source do programa contém comentários que explicam os comandos utilizados.

vid = videoinput('winvideo',1);
triggerconfig(vid, 'manual');
set(vid, 'Tag', 'Teste prog','TimerFcn', @captura, 'TimerPeriod',...
0.01,'FramesPerTrigger',1,'ReturnedColorSpace','grayscale');
             


Nestas linhas de código é declarado o objecto de entrada de vídeo e são configurados alguns dos seus parâmetros. Neste caso declarou-se uma função (timerfunction) que se executa de 0.01 em 0.01 segundos. Esta função guarda a imagem  da câmara numa variável do matlab e apresenta-a numa janela.

O programa inicia a aquisição de imagem com o comando start(vid) que gera eventos para executar a timerfunction.



function captura(vid, event)
% Executed by the videoinput object callback
% to update the image display and control data values.

% acess to controldata
userdata = get(vid, 'UserData');

% get a frame and eliminate it from memory
frame = peekdata(vid, 1);
if isempty(frame),
return;
end
flushdata(vid);


% If the figure has been destroyed on us, stop the acquisition.
if ~ishandle(userdata.refJanela),
stop(vid);
delete(vid);
return;
end

% Update the figure display with the latest data.
set(userdata.refJanela, 'CData',frame );
drawnow;