Image Acquisition Toolbox: using the 'memory' part of 'disk&memory' logging to just record timestamps

5 views (last 30 days)
I need to record video frames and their associated timestamps over an extended period of time (5 mins plus) at up to 30 fps. I currently can't go over about one minutes worth of recording using 'disk&memory' logging before i run out of memory. The actual frames are already captured to disk in the 'disk' part of the logging. So, is it possible to disable the recording of the frame data in the 'memory' part, since all i require from that part is the metadata? I'm hoping then, that i'll be able to record for longer before any out-of-memory issues appear.

Answers (1)

David Tarkowski
David Tarkowski on 14 Mar 2012
You can't do what you want directly, i.e. there is no mode that says just log the time stamps. I would probably use the FramesAcquiredFcn to get the time stamp and then discard the image data. You can store the time stamp in the UserData property of the videoinput object for later use.
For example:
vid = videoinput(...);
vid.FramesAcquiredFcnCount = 1;
vid.FramesACquiredFcn = @myFunction;
start(vid)
Your myFunction callback would look something like:
function myFunction (vid, ~)
[~, ts] = getdata(vid, 1);
timestamps = vid.UserData;
timestamps(end+1) = ts;
vid.UserData = timestamps;
  1 Comment
Evan Bates
Evan Bates on 18 May 2020
Edited: Evan Bates on 19 May 2020
Is this still the valid answer? How can you also store the frames and metadata from the getdata function in this callback function?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!