Используйте поддержку расширенного свойства в интерфейсах видения и GenICam GenTL GigE

Поддержка расширенного свойства

Image Acquisition Toolbox™ добавил улучшения свойства GenICam™ для Видения GigE® (gige) и GenICam GenTL (gentl) адаптеры используются с videoinput объект в R2016a. Эти функции были уже включены в gigecam объект.

  • Способность изменить свойства, в то время как захват запускается

  • Динамическая доступность и удобочитаемость

  • Динамические ограничения

  • Сгруппированные селекторные свойства

Измените свойства, в то время как захват запускается

Эта способность полезна для свойств, которые вы хотите изменить динамически, такие как выдержка. Например, можно теперь сделать это:

% Create the videoinput object using the GigE adaptor
vid = videoinput('gige')

% Get the video source
src = getselectedsource(vid);

% Set the frames per trigger on the source
vid.FramesPerTrigger = Inf;

% Start acquiring frames
start(vid)

% Change the exposure time during the acquisition
src.ExposureTime = 4; 

Ранее изменение выдержки после запуска захвата привело к ошибке.

Image Acquisition Tool

В Image Acquisition Tool, на вкладке Device Properties, вы видите, что свойства динамически доступны и устанавливаемы. В то время как захват запускается, можно изменить свойство на вкладке, и это вступит в силу в остающихся системах координат захвата.

Динамическая доступность и удобочитаемость

Специфичные для устройства свойства или свойства GenICam камеры, теперь динамически доступны. В предыдущих релизах были скрыты свойства GenICam камеры, которые не были доступны. Если вы отображаете специфичные для устройства свойства с помощью dispполучение или propinfo функции, свойства, которые ранее не обнаружились теперь, обнаруживаются с метками.

propinfo функция включает новое поле под названием Accessible, который является булево свойством только для чтения. disp на свойстве, которое имеет Accessible установите на 0 результаты в “В настоящее время не доступный”. Чтобы включить доступность, установите Accessible к 1. Например, если у вас есть ReverseY набор свойств к Accessible, следующее:

 propinfo(src,'ReverseY')

привел бы к показу disp:

 Accessible: 1

То же самое верно для ReadOnly свойство. Удобочитаемость является теперь динамической и propinfo функция показывает ReadOnly свойство как любой 'notCurrently', если это перезаписываемо, или 'currently', если это только для чтения. Пример в разделе Dynamic Constraints демонстрирует динамическое использование этого свойства.

Можно просмотреть исходные свойства видеть, не доступны ли какие-либо свойства в настоящее время. В этом примере, для части disp, показанного ниже, AcquisitionFrameCount и BalanceRatioRaw в настоящее время не доступны.

>> src = vid.Source

src = 

   Display Summary for Video Source Object:

      General Settings:
        Parent = [1x1 videoinput]
        Selected = on
        SourceName = input1
        Tag = [0x0 character vector]
        Type = videosource

      Device Specific Properties:
        AcquisitionFrameCount = (Currently not accessible)
        AcquisitionFrameRate = 4.5
        AcquisitionFrameRateAuto = Off
        AcquisitionFrameRateEnabled = True
        BalanceRatioRaw = (Currently not accessible)
        BinningHorizontal = 1
        BinningVertical = 1
        BlackLevel = 1.001
        ...

Image Acquisition Tool

В Image Acquisition Tool, на вкладке Device Properties, вы видите, что свойства динамически доступны. В предыдущем примере, если свойства AcquisitionFrameCount и BalanceRatioRaw стал недоступным, они появятся как greyed на вкладке.

Динамические ограничения

Если вы изменяете свойство, которое приводит к изменению возможных значений или ограничительному изменению, для другого свойства, ограничительные значения другого свойства обновляются динамически. Рассмотрите камеру, которая имеет автоматическую резкость, устанавливающую это, можно установить на Continuous автоматически настроить резкость или установить на Off. Автоматическое свойство резкости затем влияет на связанный Sharpness свойство. В этом примере, когда SharpnessAuto установлен в Continuous, disp Sharpness свойство показывает ограниченные значения и что не может быть установленным.

>> propinfo(src, 'SharpnessAuto')

ans = 

               Type: 'character vector'
         Constraint: 'enum'
    ConstraintValue: {'Continuous'  'Off'}
       DefaultValue: 'Continuous'
           ReadOnly: 'notCurrently'
     DeviceSpecific: 1
         Accessible: 1

>> propinfo(src, 'Sharpness')

ans = 

               Type: 'integer'
         Constraint: 'bounded'
    ConstraintValue: [1532 1532]
       DefaultValue: 1532
           ReadOnly: 'currently'
     DeviceSpecific: 1
         Accessible: 1

Если вы затем устанавливаете SharpnessAuto свойство к Off, второй disp Sharpness свойство показывает, что ограниченные значения динамически обновились, и что оно теперь может быть установленным (более не только для чтения).

>> src.SharpnessAuto = 'Off'
>> propinfo(src, 'Sharpness')

ans = 

               Type: 'integer'
         Constraint: 'bounded'
    ConstraintValue: [0 4095]
       DefaultValue: 1532
           ReadOnly: 'notCurrently'
     DeviceSpecific: 1
         Accessible: 1

Image Acquisition Tool

В Image Acquisition Tool, на вкладке Device Properties, вы видите, что ограничительные свойства динамически обновляются. Например, если вы выключаете свойство, которое является для автоматической функции на камере, такой как автоматическая резкость или автофокус, во вкладке Device Properties, можно затем сразу изменить связанное первичное свойство, такое как резкость или особое внимание, поскольку это больше не ограничивается. Ограниченные значения обновляются динамически.

Сгруппированные селекторные свойства

И в Image Acquisition Tool и в командной строке, теперь сгруппированы селекторные свойства. В инструменте вы видите группировки во вкладке Device Properties. В отображении свойства на командной строке связанные свойства сгруппированы – селекторное свойство перечислено с его возможными значениями, появляющимися ниже его.

Например, в предыдущих версиях тулбокса, для GainSelector с возможными значениями Red, Blue, и Green и Gain свойство, свойства усиления, отображенные можно следующим образом:

>> vid = videoinput('gige')
>> src = getselectedsource(vid)
...
...
RedGain = 0.4
BlueGain = 0.2
GreenGain = 0.1
...

Они теперь отображаются как отдельные значения на одном селекторном свойстве вместо этого:

>> vid = videoinput('gige')
>> src = getselectedsource(vid)
...
...
GainSelector = 'Red'
Gain = 0.2
... 

Вопросы совместимости

Группировка селекторных результатов свойств в вопросе совместимости, запускающемся в R2016a из-за изменения в том, как селекторные свойства отображены, читай, или записанный. Существует теперь меньше свойств, поскольку некоторые показываются одним селекторным свойством с отдельными значениями, тогда как они раньше были раздельным имуществом.

Если у вас есть какой-либо MATLAB® код, записанный до R2016a, который ссылается на предыдущее, раздельное имущество, необходимо изменить код, чтобы отразить их как значения на селекторном свойстве. Установка и получение свойств, которые принадлежат селектору с помощью предыдущего стиля составного имени, больше не поддерживаются. Например, RedGain больше не работает. Вместо этого используйте GainSelector установите на Red, как показано в примере.

Чтобы установить значение свойства, сначала установите селекторное значение, затем установите значение свойства:

src.GainSelector = 'Green';
src.Gain = 0.1;