Управление параметрами логгирования

Регистрация данных

Следующие подразделы описывают, как управлять различными аспектами регистрации данных.

Определение режима логгирования

Используя объект 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 свойство. Это свойство говорит, сколько систем координат объект получил, поскольку это было запущено. Чтобы определить, сколько систем координат в настоящее время доступно в буфере памяти, смотрите Определение, Сколько Систем координат Доступно.

Получение 100 систем координат

Этот пример иллюстрирует, как можно задать объем данных, который будет получен, и определить, сколько данных было получено. (Для примера конфигурирования основанного на времени захвата смотрите Получение 10 Секунд Данных изображения.)

  1. Создайте объект получения изображений — Этот пример создает объект ввода видео для Windows® устройство получения изображений. Чтобы запустить этот пример в вашей системе, используйте imaqhwinfo функция, чтобы получить конструктора Object для вашего устройства получения изображений и заменить тем синтаксисом следующий код.

    vid = videoinput('winvideo',1);
  2. Сконфигурируйте свойства — Задают объем данных, который вы хотите получить как количество кадров на триггер. По умолчанию объект ввода видео получает 10 систем координат на триггер. В данном примере установите значение этого свойства к 100.

    vid.FramesPerTrigger = 100
  3. Запустите объект получения изображений - — Вызов start функционируйте, чтобы запустить объект получения изображений.

    start(vid)

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

    islogging(vid)
    ans =
    
         1

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

  4. Проверяйте, сколько систем координат было получено — Чтобы проверить, что конкретное количество систем координат было получено, проверяйте значение FramesAcquired свойство. Обратите внимание на то, что объект постоянно обновляет значение FramesAcquired свойство как захват прогрессирует. Если вы просматриваете значение этого свойства несколько раз во время захвата, вы видите, что количество кадров получило увеличение до логгирования остановок.

    vid.FramesAcquired
    ans =
    
        100
  5. Вымойтесь Всегда удаляют объекты получения изображений из памяти и переменные, которые ссылаются на них, когда вам больше не нужны они.

    delete(vid)
    clear vid

Определение, сколько систем координат доступно

FramesAcquired свойство говорит, сколько систем координат объект регистрировал, поскольку это было запущено, описано в Определении, Сколько Данных Регистрировалось. Если вы перемещаете системы координат от буфера памяти в рабочее пространство MATLAB, количество кадров, сохраненное в буфере памяти, будет отличаться от FramesAcquired значение. Чтобы определить, сколько систем координат в настоящее время доступно в буфере памяти, проверяйте значение FramesAvailable свойство.

Примечание

FramesAvailable свойство говорит количество кадров в буфере памяти, не в дисковом журнале, если LoggingMode сконфигурирован к 'disk' или 'disk&memory'. Поскольку занимает больше времени записать системы координат в дисковый файл, чем к памяти, количество кадров, сохраненное в дисковом журнале, может отстать от сохраненных в буфере памяти. Чтобы видеть, как много систем координат доступны в дисковом журнале, смотрят на значение DiskLoggerFrameCount свойство. Смотрите Данные изображения Логгирования к Диску для получения дополнительной информации.

Этот пример иллюстрирует различие между FramesAcquired и FramesAvailable свойства:

  1. Создайте объект получения изображений — Этот пример создает объект ввода видео для устройства получения изображений Windows. Чтобы запустить этот пример в вашей системе, используйте imaqhwinfo функция, чтобы получить конструктора Object для вашего устройства получения изображений и заменить тем синтаксисом следующий код.

    vid = videoinput('winvideo',1);
  2. Сконфигурируйте свойства — В данном примере конфигурируют захват 15 систем координат.

    vid.FramesPerTrigger = 15
  3. Запустите объект получения изображений — Вызов start функционируйте, чтобы запустить объект получения изображений.

    start(vid)

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

  4. Проверяйте, сколько системы координат были получены — Чтобы определить, сколько систем координат объект получил и сколько систем координат доступно в буфере памяти, проверяйте значение FramesAcquired и FramesAvailable свойства.

    vid.FramesAcquired
    ans =
    
        15
    
    vid.FramesAvailable
    
    ans = 
    
        15

    Обновления объекта значение этих свойств постоянно, когда это получает системы координат данных. Следующая фигура иллюстрирует, как объект помещает полученные системы координат в буфер памяти, в то время как захват прогрессирует.

    Системы координат, доступные после начального триггерного выполнения

  5. Удалите системы координат из буфера памяти — Когда вы удаляете системы координат из буфера памяти, объект постепенно уменьшает значение FramesAvailable свойство количеством кадров удалено.

    Чтобы удалить системы координат из буфера памяти, вызовите getdata функция, задавая количество кадров, чтобы получить. Для получения дополнительной информации об использовании getdata, смотрите Данные изображения Обеспечения в рабочее пространство MATLAB.

    data = getdata(vid,5);

    После того, как вы выполняете getdata функция, проверяйте значения FramesAcquired и FramesAvailable свойства снова. Заметьте, что FramesAcquired свойство остается неизменным, но объект постепенно уменьшил значение FramesAvailable свойство количеством кадров удалено из буфера памяти.

    vid.FramesAcquired
    
    ans =
    
        15
    
    vid.FramesAvailable
    
    ans =
    
        10

    Следующая фигура иллюстрирует содержимое буфера памяти после того, как системы координат будут удалены.

    Содержимое буфера памяти до и после удаления систем координат

  6. Вымойтесь — Всегда удаляют объекты получения изображений из памяти и переменные, которые ссылаются на них, когда вам больше не нужны они.

    delete(vid)
    clear vid

Задержка регистрации данных после триггера

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

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

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

vid.TriggerFrameDelay = 5;

Этот рисунок иллюстрирует этот сценарий.

При определении задержки, прежде чем начинается регистрация данных

Определение нескольких триггеров

Когда триггер происходит, объект ввода видео получает количество кадров, заданное FramesPerTrigger свойство и регистрирует данные к буферу памяти, дисковому файлу или обоим.

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

Обратите внимание на то, что TriggerRepeat свойство задает номер дополнительных времен, которые выполняет триггер. Например, чтобы выполнить триггер три раза, вы установили бы значение TriggerRepeat свойство к 2. В следующем, vid объект ввода видео, созданный с videoinput функция.

vid.TriggerRepeat = 2;

Этот рисунок иллюстрирует захват с тремя выполнением ручного триггера. На рисунке, FramesPerTrigger свойство установлено в 3.

Выполнение нескольких триггеров