Работа со свойствами

В этом примере показано, как получить доступ и сконфигурировать видео параметры переноса.

Доступ к свойствам

Чтобы получить доступ к полному списку свойств объекта и их текущих значений, используйте get функция с объектом.

% 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

Чтобы получить доступ к определенному значению свойства, используйте get функция с объектом и именем свойства.

framesPerTriggerValue = vidobj.FramesPerTrigger;
framesPerTriggerValue =

    10

brightnessValue = src.Brightness;
brightnessValue =

   304

В качестве альтернативы мы можем получить доступ к определенному значению свойства при помощи точечного (.) обозначения.

framesPerTriggerValue = vidobj.FramesPerTrigger
framesPerTriggerValue =

    10

brightnessValue = src.Brightness
brightnessValue =

   304

Конфигурирование свойств

Перечислимые свойства имеют заданный набор возможных значений. Чтобы перечислить перечисляемые значения свойства, используйте set функция с объектом и именем свойства. Значение по умолчанию свойства перечислено в фигурных скобках.

set(vidobj, 'LoggingMode')
[ {memory} | disk | disk&memory ]

Чтобы получить доступ к полному списку конфигурируемых свойств объекта, используйте set функция с объектом.

% 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 ]

Чтобы сконфигурировать значение свойства объекта, используйте set функция с объектом, именем свойства и значением свойства.

vidobj.TriggerRepeat = 2;
src.Saturation = 100;

В качестве альтернативы мы можем сконфигурировать определенное значение свойства при помощи точечного (.) обозначения.

vidobj.TriggerRepeat = 2;
src.Saturation = 100;

Получение справки свойства и информации

Чтобы получить описание свойства, используйте imaqhelp функция с объектом и именем свойства. imaqhelp может также использоваться для функциональной справки.

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.

Чтобы получить информацию об атрибутах свойства, используйте propinfo функция с объектом и именем свойства.

propinfo(vidobj, 'LoggingMode')
ans = 

               Type: 'string'
         Constraint: 'enum'
    ConstraintValue: {'memory'  'disk'  'disk&memory'}
       DefaultValue: 'memory'
           ReadOnly: 'whileRunning'
     DeviceSpecific: 0

Когда объект получения изображений больше не будет необходим, удалите его из памяти и очистите рабочую область MATLAB® связанной переменной.

delete(vidobj);
clear vidobj