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;