Why do I receive the error "GETDATA timed out before FRAMES were available" when using GETDATA in Image Acquisition Toolbox 4.3 (R2012a)?
27 views (last 30 days)
Show older comments
MathWorks Support Team
on 25 Oct 2013
Commented: Angel
on 4 Nov 2014
I'm using a camera on a Linux machine. I would like to get image data frame by frame in a for-loop. However, I get errors as follows at the same line of different iterations. What should I do to avoid the error?
Warning: Unable to start acquisition:
Error event occurred at 13:57:18 for video input object: YUYV_640x480-linuxvideo-2.
The image acquisition device failed to start acquiring images.
The image acquisition device failed to
start acquiring images.
Error in imaqdevice/getdata (line 139)
frames =
getdata(imaqgate('privateGetField',
obj, 'uddobject'),varargin{:});
Error in test (line 8)
imageData1=getdata(vid1,1);
Error using imaqdevice/getdata (line
146)
OBJ is not running and no frames are
available.
Error in test (line 10)
imageData2=getdata(vid2,1);
Accepted Answer
MathWorks Support Team
on 25 Oct 2013
The error message on your Linux machine is caused by the delay between the device and MATLAB, which is not a constant value and this related to your system and device driver. This is the reason why it happens at random iterations. Due to the delay, there are no available frames when the time exceeds the Timeout value. To ensure that you are getting data from the camera, you have two options:
1. Setting a larger Timeout value for the object
set(vid,'Timeout',50); %set the Timeout property of VIDEOINPUT object 'vid' to 50 seconds
2. Before GETDATA, wait until there's an available frame
while get(vid,'FramesAvailable')<1 %Wait until at least 1 frame is available
unavailable=1;
end
0 Comments
More Answers (0)
See Also
Categories
Find more on DALSA Sapera Hardware in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!