exponenta event banner

Получение данных изображения

После заполнения глав 3 и 4 можно увидеть ваш адаптер, включенный в список адаптеров, возвращенных imaqhwinfo и можно создать объект ввода видео с помощью videoinput функция. Теперь пришло время получить данные с вашего устройства. В этой главе подробно описываются реализации виртуальных функций класса адаптеров, которые работают вместе для получения данных.

Пользовательский сценарий

В следующем примере показано, как пользователь панели инструментов инициирует получение кадров изображения. Пример вызывает videoinput для создания объекта ввода видео, а затем вызывает start для запуска объекта. В сводке следует отметить, что получено десять кадров изображения.

vid = videoinput('winvideo');

start(vid);
vid

Summary of Video Input Object Using 'IBM PC Camera'.

   Acquisition Source(s):  input1 is available.

  Acquisition Parameters:  'input1' is the current selected source.
                           10 frames per trigger using the selected source.
                           'RGB555_128x96' video data to be logged upon START.
                           Grabbing first of every 1 frame(s).
                           Log data to 'memory' on trigger.

      Trigger Parameters:  1 'immediate' trigger(s) on START.

                  Status:  Waiting for START.
                           10 frames acquired since starting.
                           10 frames available for GETDATA.

Вызов

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

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

Панель инструментов автоматически обрабатывает немедленное и ручное срабатывание; нет необходимости включать в адаптер какую-либо специальную обработку. Для поддержки аппаратных триггеров требуется определенная работа по разработке адаптеров. Дополнительные сведения см. в разделе Поддержка аппаратных триггеров.

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

Чистые виртуальные функции в классе адаптеров, которые необходимо реализовать, работают вместе для получения данных. Однако основные шаги заключаются в следующем:

  1. Укажите формат видеоданных в getMaxHeight(), getMaxWidth(), getNumberOfBands(), и getFrameType() функции - см. раздел Определение формата данных изображения.

  2. Откройте соединение с устройством в openDevice() функция - см. Открытие и закрытие соединения с устройством.

  3. Начать получение данных в startCapture() функция - см. Запуск и остановка получения изображения.

  4. Прекратить получение данных в stopCapture() функция - см. Запуск и остановка получения изображения.

  5. Закройте соединение с устройством в closeDevice() функция - см. Открытие и закрытие соединения с устройством.

На следующей схеме показан этот поток управления в графическом виде. Эта схема определяет, где заканчивается схема в главе 3 после создания объекта - см. Получение данных изображения.

Примечание

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

Поток управления между функциями сбора данных адаптера