domingo, 24 de enero de 2016

Detector de Movimiento Utilizando MATLAB

Este programa permite detectar movimientos a partir de una webcam utilizando MATLAB
Al darse un movimiento frente a la cámara, se muestra en pantalla la palabra "Movimiento"
Este código es de mucha utilidad y puede ser implementado en una GUI  para la realización de proyectos más complejos.

clc
vid = videoinput('winvideo', 1);
set(vid,'TriggerRepeat',Inf);
vid.FrameGrabInterval = 5;
start(vid);

    while(vid.FramesAcquired<=110) % para luego de 10 tramas
        IM = getdata(vid,2);
        IMGray = rgb2gray(IM(:,:,1:3));
        IMbw=im2bw(IMGray,0.5);
        IMneg=imadjust(IMGray,[0 1],[1 0]);
        subplot(2,3,1);imshow(IM(:,:,:,1));title('Video')
        subplot(2,3,2);imshow(IMbw);title('Blanco y Negro')
        subplot(2,3,3);imshow(IMGray);title('Gris')
        subplot(2,3,4);imshow(IMneg);title('Negativo')
     
        i1=IM(:,:,:,1);
        i2=IM(:,:,:,2);
        i1=rgb2gray(i1(:,:,1:3));
        i2=rgb2gray(i2(:,:,1:3));
        m=abs(double(i1)-double(i2))/256;
        subplot(2,3,5);imshow(m);title('Movimiento')
         
        if sum(sum(m))>1200
         
            disp('Movimiento');
            beep
        end
           end
    stop(vid);