Real-time video capture with frame by frame comparsion

4 visualizaciones (últimos 30 días)
Hello, I would like to capture video using a computer camera (usb) and compare consecutive frames (i.e. get diff).
I got the real time capture using videoinput functions and objects
vid = videoinput('winvideo', 1);
and the timer function to capture frames from the video stream.
TimerData=timer('TimerFcn', {@FrameRateDisplay,vid},'Period',1/NumberFrameDisplayPerSecond,'ExecutionMode','fixedRate','BusyMode','drop');
the function FrameRateDisplay just displays the image captured and some stats on it.
However, I cannot figure out a way to save the last frame captured, to compare it to the next run of the timer function. I think fundamentally I'm confused about how to get a return value from the callbackfunction @FrameRateDisplay.
thank you for your time,
dave

Respuesta aceptada

Walter Roberson
Walter Roberson el 18 de Mzo. de 2013
Those kinds of callback functions cannot return values. Not many callback functions can.
  1 comentario
David
David el 19 de Mzo. de 2013
yea, from my research i've seem to run into your conclusion (and that linke as well).
As a work around, I'm sampling at a slower rate, and within the FrameRateDisplay function I'm calling the trigger() and getdata() twice with a pause inbetween. it gets the job done, I just feel it's not very clean.
I'll search that wiki you sent for a solution, it's just a little confusing give it's got a lot of GUI discussion, which I'm not using.
thank you for your rapid response.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by