Real-time video capture with frame by frame comparsion

3 vues (au cours des 30 derniers jours)
David
David le 18 Mar 2013
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

Réponse acceptée

Walter Roberson
Walter Roberson le 18 Mar 2013
Those kinds of callback functions cannot return values. Not many callback functions can.
  1 commentaire
David
David le 19 Mar 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by