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