Working with Properties
This example shows how to access and configure video acquisition properties.
Accessing Properties
To access a complete list of an object's properties and their current values, use the get
function with the object.
% Create a video input object. vidobj = videoinput('dcam', 1); % List the video input object's properties and their current values. get(vidobj)
General Settings: DeviceID = 1 DiskLogger = [] DiskLoggerFrameCount = 0 EventLog = [1x0 struct] FrameGrabInterval = 1 FramesAcquired = 0 FramesAvailable = 0 FramesPerTrigger = 10 Logging = off LoggingMode = memory Name = RGB24_640x480-dcam-1 NumberOfBands = 3 Previewing = off ReturnedColorSpace = rgb ROIPosition = [0 0 640 480] Running = off Tag = Timeout = 10 Type = videoinput UserData = [] VideoFormat = RGB24_640x480 VideoResolution = [640 480] Callback Function Settings: ErrorFcn = @imaqcallback FramesAcquiredFcn = [] FramesAcquiredFcnCount = 0 StartFcn = [] StopFcn = [] TimerFcn = [] TimerPeriod = 1 TriggerFcn = [] Trigger Settings: InitialTriggerTime = [] TriggerCondition = none TriggerFrameDelay = 0 TriggerRepeat = 0 TriggersExecuted = 0 TriggerSource = none TriggerType = immediate Acquisition Sources: SelectedSourceName = input1 Source = [1x1 videosource]
% Access the currently selected video source object src = getselectedsource(vidobj); % List the video source object's properties and their current values. get(src)
General Settings: Parent = [1x1 videoinput] Selected = on SourceName = input1 Tag = Type = videosource Device Specific Properties: AutoExposure = 511 AutoExposureMode = auto Brightness = 304 BrightnessMode = auto FrameRate = 15 Gain = 87 Gamma = 1 Saturation = 90 Sharpness = 80 Shutter = 6 WhiteBalance = [95 87] WhiteBalanceMode = auto
To access a specific property value, use dot notation with the object and property name.
framesPerTriggerValue = vidobj.FramesPerTrigger;
framesPerTriggerValue = 10
brightnessValue = src.Brightness;
brightnessValue = 304
Configuring Properties
Enumerated properties have a defined set of possible values. To list the enumerated values of a property, use the set
function with the object and property name. The property's default value is listed in braces.
set(vidobj, 'LoggingMode')
[ {memory} | disk | disk&memory ]
To access a complete list of an object's configurable properties, use the set
function with the object.
% List the video input object's configurable properties.
set(vidobj)
General Settings: DiskLogger FrameGrabInterval FramesPerTrigger LoggingMode: [ {memory} | disk | disk&memory ] Name ReturnedColorSpace: [ {rgb} | grayscale | YCbCr ] ROIPosition Tag Timeout UserData Callback Function Settings: ErrorFcn: string -or- function handle -or- cell array FramesAcquiredFcn: string -or- function handle -or- cell array FramesAcquiredFcnCount StartFcn: string -or- function handle -or- cell array StopFcn: string -or- function handle -or- cell array TimerFcn: string -or- function handle -or- cell array TimerPeriod TriggerFcn: string -or- function handle -or- cell array Trigger Settings: TriggerFrameDelay TriggerRepeat Acquisition Sources: SelectedSourceName: [ {input1} ]
% List the video source object's configurable properties.
set(src)
General Settings: Tag Device Specific Properties: AutoExposure AutoExposureMode: [ {auto} | manual ] Brightness BrightnessMode: [ {auto} | manual ] FrameRate: [ {15} | 7.5 | 3.75 ] Gain Gamma Saturation Sharpness Shutter WhiteBalance WhiteBalanceMode: [ {auto} | manual ]
To configure an object's property value, use dot notation with the object, property name, and property value.
vidobj.TriggerRepeat = 2; src.Saturation = 100;
Getting Property Help and Information
To obtain a property's description, use the imaqhelp
function with the object and property name. imaqhelp
can also be used for function help.
imaqhelp(vidobj, 'LoggingMode')
LOGGINGMODE [ {memory} | disk | disk&memory ] (Read-only: whileRunning) LoggingMode specifies the destination for acquired data. LoggingMode can be set to disk, memory,or disk&Memory. If LoggingMode is set to disk, then acquired data is streamed to a disk file as specified by the DiskLogger property. If LoggingMode is set to memory, acquired data is stored in a memory buffer. If LoggingMode is set to disk&Memory, then acquired data is stored in memory and is streamed to a disk file as specified by the DiskLogger property. When logging to memory, you must extract the data in a timely manner with the GETDATA function. If the data is not extracted in a timely manner, memory resources may be used up. The value of LoggingMode cannot be modified while the object is running. See also DiskLogger, IMAQDEVICE/GETDATA.
To obtain information on a property's attributes, use the propinfo
function with the object and property name.
propinfo(vidobj, 'LoggingMode')
ans = Type: 'string' Constraint: 'enum' ConstraintValue: {'memory' 'disk' 'disk&memory'} DefaultValue: 'memory' ReadOnly: 'whileRunning' DeviceSpecific: 0
When an image acquisition object is no longer needed, remove it from memory and clear the MATLAB® workspace of the associated variable.
delete(vidobj);
clear vidobj