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

После завершающихся глав 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 каждого устройства.

Поток управления среди функций приобретения адаптера