Управление параметрами каротажа

Логгирование данных

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

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

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

Значение по умолчанию для LoggingMode свойство 'memory'. В этом режиме тулбокс регистрирует данные в буфере в памяти. Если вы хотите принести данные изображения в MATLAB® рабочая область, необходимо логгировать системы координат в память. Функции, предоставляемые тулбоксом для перемещения данных в рабочую область, все работают с буфером памяти. Для получения дополнительной информации см. раздел «Перенос данных изображений в рабочее пространство MATLAB».

Можно также записать данные в файл диска, установив LoggingMode свойство к 'disk' или к 'disk&memory'. Регистрируя системы координат в файле диска, вы создаете постоянную запись о системах координат, которую вы получаете. Для примера этот код устанавливает значение LoggingMode свойство объекта входа видео vid на 'disk&memory'.

vid.LoggingMode = 'disk&memory';

Поскольку тулбокс хранит системы координат изображения в формате Audio Video Interleaved (AVI), можно просмотреть записанные системы координат в любом стандартном медиаплеере. Дополнительные сведения см. в разделе Регистрация данных на диске.

Примечание

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

Определение количества систем координат для регистрации

В программном обеспечении Image Acquisition Toolbox™ в качестве количества систем координат на триггер указывается объем данных, которые необходимо получить.

Вы задаете желаемый размер вашего приобретения как значение объекта входа видео FramesPerTrigger свойство. По умолчанию значение этого свойства составляет 10 системы координат на триггер, но можно задать любое значение. Следующий рисунок иллюстрирует приобретение, используя значение по умолчанию для FramesPerTrigger свойство. Чтобы увидеть пример приобретения, смотрите Приобретение 100 систем координат.

Определение объема данных для регистрации

Примечание

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

Определение несмежного приобретения

Хотя FramesPerTrigger определяет количество систем координат, которые нужно получить, эти системы координат не должны быть извлечены непрерывно из видеопотока. Можно задать, что тулбокс пропускает определенное количество систем координат между системами координат, которые он получает. Для этого установите значение FrameGrabInterval свойство.

Примечание

The FrameGrabInterval свойство управляет интервалом, в котором тулбокс получает системы координат из видеопотока (измеряется в системах координат). Это свойство не управляет частотой, с которой системы координат предоставляются устройством, иначе известной как частота систем координат.

Следующий рисунок иллюстрирует, как FrameGrabInterval свойство влияет на приобретение.

Влияние FrameGrabInterval на логгирование данных

Определение объема записанных данных

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

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

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

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

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

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

    start(vid)

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

    islogging(vid)
    ans =
    
         1

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

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

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

    delete(vid)
    clear vid

Определение количества доступных систем координат

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

Примечание

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

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

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

    vid = videoinput('winvideo',1);
  2. Сконфигурируйте свойства - Для этого примера сконфигурируйте сбор 15 систем координат.

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

    start(vid)

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

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

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

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

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

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

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

    data = getdata(vid,5);

    После выполнения getdata function, проверяйте значения 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.

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