После завершающихся глав 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
, чтобы получить данные. С аппаратными триггерами вы запускаете объект, и он ожидает, пока он не получает сигнал от внешнего устройства, чтобы начать получать данные.
Тулбокс обрабатывает мгновенное и ручное инициирование автоматически; вы не должны включать специальную обработку в свой адаптер. Поддержка аппаратных триггеров, требует некоторой технической разработки адаптера. Для получения дополнительной информации смотрите Аппаратные Триггеры Поддержки.
Чистые виртуальные функции в вашем классе адаптера, который необходимо реализовать, работают совместно, чтобы получить данные. Однако основные шаги:
Задайте формат видеоданных в getMaxHeight()
, getMaxWidth()
, getNumberOfBands()
, и функции getFrameType()
— видят Определение Формата Данных изображения.
Откройтесь связь с вашим устройством в функции openDevice()
— смотрите Открытие и закрытие Связи с Устройством.
Начните получать данные в функции startCapture()
— смотрите Запуск и Остановку Получения изображений.
Прекратите получать данные в функции stopCapture()
— смотрите Запуск и Остановку Получения изображений.
Закройтесь связь с устройством в функции closeDevice()
— смотрите Открытие и закрытие Связи с Устройством.
Следующая схема показывает этот поток управления в графической форме. Эта схема берет, где схема в концах Главы 3, после того, как объект был создан — смотрите Данные изображения Получения.
Схемы не показывают вызовы, которые ваш адаптер выполняет к SDK устройства получения изображений, потому что эти вызовы меняются в зависимости от SDK каждого устройства.
Поток управления среди функций приобретения адаптера