Setting DeviceProperties using imaq.VideoDevice
8 views (last 30 days)
I am doing some machine vision code where we use step to acquire frame from a camera and then process them before stepping to the next frame. We use vid = imaq.VideoDevice to engage the camera.
I can easily set some properties, such as ROI but using the commands
set(vid, 'ROI', [1 1 640 240]);
ROI can be seen under the Properties when I simply call "vid".
However, I am not sure why I can't set other properties. I can call vid.DeviceProperties and see a long list of properties that we need to change, including binning and particularly VideoMode. However, when I call
set(vid, 'VideoMode', 'Mode7');
I receive the error
Error using imaq.VideoDevice/set (line 469) No public field VideoMode exists for class imaq.internal.VideoDeviceInternal.
How can I set the vid.DeviceProperties from my code?
Thank you in advance, Quentin
Andrew Davies on 9 Sep 2015
You can do it with handles.
For example: vid = imaq.VideoDevice('gentl',1);
vid.DeviceProperties.AcquisitionRecordTriggerMode = 'On'; vid.DeviceProperties.FrameStartTriggerSource = 'Line1';
To see what handles you can change:
vid = imaq.VideoDevice('gentl',1); vid set(vid)
Shankar Subramanian on 13 Oct 2015
DeviceProperties is a separate object representing device specific properties and you can perform set operations on that to set the property values.
As an example:
deviceProps = vid.DeviceProperties;
set(deviceProps, 'VideoMode', 'Mode7');
The above should work.