Следующие подразделы описывают, как управлять различными аспектами регистрации данных.
Определение режима логгирования
Определение количества кадров, чтобы регистрировать
Определение, сколько систем координат регистрировалось начиная с объекта, было запущено
Определение, сколько систем координат в настоящее время доступно в буфере памяти
При задержке регистрации данных после того, как выполняется триггер
Определение нескольких триггерного выполнения
Используя объект LoggingMode
ввода видео свойство, можно управлять, где тулбокс регистрирует полученные системы координат данных.
Значение по умолчанию для LoggingMode
свойством является 'memory'
. В этом режиме, данных логов тулбокса к буферу в памяти. Если вы хотите принести данные изображения в MATLAB® рабочая область, необходимо регистрировать системы координат к памяти. Функции, обеспеченные тулбоксом, чтобы переместить данные в рабочую область, все работают с буфером памяти. Для получения дополнительной информации смотрите Данные изображения Обеспечения в рабочее пространство MATLAB.
Вы можете также данные логов к дисковому файлу путем установки LoggingMode
свойство к 'disk'
или к 'disk&memory'
. Путем логгирования систем координат к дисковому файлу вы создаете постоянную запись систем координат, которые вы получаете. Например, это кодовые наборы значение LoggingMode
свойство объекта vid
ввода видео к
'disk&memory'
.
vid.LoggingMode = 'disk&memory';
Поскольку тулбокс хранит фреймы изображения в формате Чередования аудио и видео (AVI), можно просмотреть регистрируемые системы координат в любом стандартном медиаплеере. Для получения дополнительной информации смотрите Данные изображения Логгирования к Диску.
Примечание
Чтобы получить список опций, можно использовать на функции, нажать клавишу Tab после ввода функции на командной строке MATLAB. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.
В программном обеспечении Image Acquisition Toolbox™ вы задаете объем данных, который вы хотите получить как количество кадров на триггер.
Вы задаете желаемый размер своего захвата как значение объекта FramesPerTrigger
ввода видео свойство. По умолчанию значение этого свойства является 10 системами координат на триггер, но можно задать любое значение. Следующая фигура иллюстрирует захват с помощью значения по умолчанию для
FramesPerTrigger
свойство. Чтобы видеть пример захвата, смотрите Получение 100 Систем координат.
Определение объема данных, чтобы регистрировать
Примечание
В то время как можно задать любой захват размера, количество кадров, которое можно получить, ограничивается объемом памяти, который вы имеете в наличии в своей системе для устройства хранения данных изображений. Большой захват может потенциально заполнить всю доступную системную память. Для больших захватов вы можете хотеть удалить системы координат из буфера, когда они регистрируются. Для получения дополнительной информации смотрите Перемещение Нескольких Систем координат в Рабочую область. Чтобы изучить, как опорожнить буфер памяти, смотрите Память Освобождения.
Несмотря на то, что FramesPerTrigger
задает количество кадров, чтобы получить, эти системы координат не должны быть получены непрерывно от видеопотока. Можно указать, что тулбокс пропускает определенное число систем координат между системами координат, которые он получает. Для этого установите значение FrameGrabInterval
свойство.
Примечание
FrameGrabInterval
свойство управляет интервалом, в котором тулбокс получает системы координат от видеопотока (измеренный в системах координат). Это свойство не управляет уровнем, на котором системы координат обеспечиваются устройством, в противном случае известным как частоту кадров.
Следующая фигура иллюстрирует как FrameGrabInterval
свойство влияет на захват.
Удар FrameGrabInterval на регистрации данных
Чтобы определить, сколько систем координат было получено объектом ввода видео, проверяйте значение FramesAcquired
свойство. Это свойство говорит, сколько систем координат объект получил, поскольку это было запущено. Чтобы определить, сколько систем координат в настоящее время доступно в буфере памяти, смотрите Определение, Сколько Систем координат Доступно.
Этот пример иллюстрирует, как можно задать объем данных, который будет получен, и определить, сколько данных было получено. (Для примера конфигурирования основанного на времени захвата смотрите Получение 10 Секунд Данных изображения.)
Создайте объект получения изображений — Этот пример создает объект ввода видео для Windows® устройство получения изображений. Чтобы запустить этот пример в вашей системе, используйте imaqhwinfo
функция, чтобы получить конструктора Object для вашего устройства получения изображений и заменить тем синтаксисом следующий код.
vid = videoinput('winvideo',1);
Сконфигурируйте свойства — Задают объем данных, который вы хотите получить как количество кадров на триггер. По умолчанию объект ввода видео получает 10 систем координат на триггер. В данном примере установите значение этого свойства к 100
.
vid.FramesPerTrigger = 100
Запустите объект получения изображений - — Вызов start
функционируйте, чтобы запустить объект получения изображений.
start(vid)
Объект выполняет мгновенный триггер и начинает получать системы координат данных. Чтобы проверить, регистрирует ли объект ввода видео данные, используйте islogging
функция.
islogging(vid) ans = 1
start
функция возвращает управление в командную строку сразу, но объект продолжает регистрировать данные к буферу памяти. После получения конкретного количества систем координат объект прекращает запускать и регистрировать.
Проверяйте, сколько систем координат было получено — Чтобы проверить, что конкретное количество систем координат было получено, проверяйте значение FramesAcquired
свойство. Обратите внимание на то, что объект постоянно обновляет значение FramesAcquired
свойство как захват прогрессирует. Если вы просматриваете значение этого свойства несколько раз во время захвата, вы видите, что количество кадров получило увеличение до логгирования остановок.
vid.FramesAcquired ans = 100
Вымойтесь Всегда удаляют объекты получения изображений из памяти и переменные, которые ссылаются на них, когда вам больше не нужны они.
delete(vid) clear vid
FramesAcquired
свойство говорит, сколько систем координат объект регистрировал, поскольку это было запущено, описано в Определении, Сколько Данных Регистрировалось. Если вы перемещаете системы координат от буфера памяти в рабочее пространство MATLAB, количество кадров, сохраненное в буфере памяти, будет отличаться от FramesAcquired
значение. Чтобы определить, сколько систем координат в настоящее время доступно в буфере памяти, проверяйте значение FramesAvailable
свойство.
Примечание
FramesAvailable
свойство говорит количество кадров в буфере памяти, не в дисковом журнале, если LoggingMode
сконфигурирован к 'disk'
или 'disk&memory'
. Поскольку занимает больше времени записать системы координат в дисковый файл, чем к памяти, количество кадров, сохраненное в дисковом журнале, может отстать от сохраненных в буфере памяти. Чтобы видеть, как много систем координат доступны в дисковом журнале, смотрят на значение DiskLoggerFrameCount
свойство. Смотрите Данные изображения Логгирования к Диску для получения дополнительной информации.
Этот пример иллюстрирует различие между FramesAcquired
и FramesAvailable
свойства:
Создайте объект получения изображений — Этот пример создает объект ввода видео для устройства получения изображений Windows. Чтобы запустить этот пример в вашей системе, используйте imaqhwinfo
функция, чтобы получить конструктора Object для вашего устройства получения изображений и заменить тем синтаксисом следующий код.
vid = videoinput('winvideo',1);
Сконфигурируйте свойства — В данном примере конфигурируют захват 15 систем координат.
vid.FramesPerTrigger = 15
Запустите объект получения изображений — Вызов start
функционируйте, чтобы запустить объект получения изображений.
start(vid)
Объект выполняет мгновенный триггер и начинает получать системы координат данных. start
функция возвращает управление в командную строку сразу, но объект продолжает регистрировать данные к буферу памяти. После логгирования конкретного количества систем координат объект прекращает запускаться.
Проверяйте, сколько системы координат были получены — Чтобы определить, сколько систем координат объект получил и сколько систем координат доступно в буфере памяти, проверяйте значение FramesAcquired
и FramesAvailable
свойства.
vid.FramesAcquired ans = 15 vid.FramesAvailable ans = 15
Обновления объекта значение этих свойств постоянно, когда это получает системы координат данных. Следующая фигура иллюстрирует, как объект помещает полученные системы координат в буфер памяти, в то время как захват прогрессирует.
Системы координат, доступные после начального триггерного выполнения
Удалите системы координат из буфера памяти — Когда вы удаляете системы координат из буфера памяти, объект постепенно уменьшает значение FramesAvailable
свойство количеством кадров удалено.
Чтобы удалить системы координат из буфера памяти, вызовите getdata
функция, задавая количество кадров, чтобы получить. Для получения дополнительной информации об использовании getdata
, смотрите Данные изображения Обеспечения в рабочее пространство MATLAB.
data = getdata(vid,5);
После того, как вы выполняете getdata
функция, проверяйте значения FramesAcquired
и FramesAvailable
свойства снова. Заметьте, что FramesAcquired
свойство остается неизменным, но объект постепенно уменьшил значение FramesAvailable
свойство количеством кадров удалено из буфера памяти.
vid.FramesAcquired ans = 15 vid.FramesAvailable ans = 10
Следующая фигура иллюстрирует содержимое буфера памяти после того, как системы координат будут удалены.
Содержимое буфера памяти до и после удаления систем координат
Вымойтесь — Всегда удаляют объекты получения изображений из памяти и переменные, которые ссылаются на них, когда вам больше не нужны они.
delete(vid) clear vid
В некоторых настройках получения изображений вы не можете хотеть регистрировать первые несколько систем координат, возвращенных в вашу камеру или другое устройство обработки изображений. Например, некоторые камеры требуют короткого времени прогрева, когда активировано. Качество первых нескольких изображений, возвращенных этими камерами, может быть слишком темным, чтобы быть полезным для вашего приложения.
С учетом этой характеристики вашей настройки можно указать, что тулбокс пропускает конкретное количество систем координат после того, как триггер выполняется. Вы используете TriggerFrameDelay
свойство задать количество кадров, которое вы хотите пропустить перед логгированием, начинается.
Например, чтобы задать задержку пяти систем координат, прежде чем регистрация данных начинается после того, как триггер выполняется, вы установили бы значение TriggerFrameDelay
свойство к 5. Полученное количество кадров задано FramesPerTrigger
свойство и незатронуто задержкой.
vid.TriggerFrameDelay = 5;
Этот рисунок иллюстрирует этот сценарий.
При определении задержки, прежде чем начинается регистрация данных
Когда триггер происходит, объект ввода видео получает количество кадров, заданное FramesPerTrigger
свойство и регистрирует данные к буферу памяти, дисковому файлу или обоим.
Когда это получает конкретное количество систем координат, объект ввода видео прекращает запускаться. Чтобы выполнить другой триггер, необходимо перезапустить объект ввода видео. Перезапуск объекта заставляет его удалять все данные, которые это хранило в буфере памяти от предыдущего триггера. Чтобы выполнить несколько триггеров, сохраняя данные из каждого триггера, необходимо задать значение для TriggerRepeat
свойство.
Обратите внимание на то, что TriggerRepeat
свойство задает номер дополнительных времен, которые выполняет триггер. Например, чтобы выполнить триггер три раза, вы установили бы значение TriggerRepeat
свойство к 2
. В следующем, vid
объект ввода видео, созданный с videoinput
функция.
vid.TriggerRepeat = 2;
Этот рисунок иллюстрирует захват с тремя выполнением ручного триггера. На рисунке, FramesPerTrigger
свойство установлено в 3.
Выполнение нескольких триггеров