Журналирование данных изображения к диску

Форматы для регистрации данных к диску

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

Для лучшей производительности, регистрируя к диску требует объекта MATLAB® VideoWriter, который является функцией MATLAB, не функцией Image Acquisition Toolbox™. После того, как вы создадите и сконфигурируете объект VideoWriter, предоставьте его свойству DiskLogger объекта videoinput.

VideoWriter обеспечивает много различных профилей, которые регистрируют данные в различных форматах. Следующий пример использует профиль Motion JPEG 2000, который может регистрировать одно-полосы (полутоновые) данные, а также многобайтовые данные. Поддерживаемые профили:

  • 'Motion JPEG 2000' — Сжатый файл Motion JPEG 2000.

  • 'Archival' — Файл Motion JPEG 2000 со сжатием без потерь.

  • 'Motion JPEG AVI' — Сжатый файл AVI с помощью кодека Движущегося JPEG.

  • 'Uncompressed AVI' — Несжатый файл AVI с видео RGB24.

  • 'MPEG-4' — Сжатый файл MPEG-4 с кодированием H.264 (системы с Windows 7 или macOS 10.7 и позже).

  • 'Grayscale AVI' — Несжатый файл AVI с полутоновым видео. Только используемый для монохромных устройств.

  • 'Indexed AVI' — Несжатый файл AVI с индексируемым видео. Только используемый для монохромных устройств.

Регистрация данных к диску Используя VideoWriter

Этот пример использует устройство Видения GigE в полутоновом формате (Mono10).

  1. Создайте объект ввода видео, что доступы устройство получения изображений Видения GigE и используют полутоновый формат на уровне 10 бит на пиксель.

    vidobj = videoinput('gige', 1, 'Mono10');
  2. Можно регистрировать полученные данные к памяти к диску или обоим. По умолчанию данные регистрируются к памяти. Чтобы изменить режим журналирования на диск, сконфигурируйте свойство LoggingMode объекта ввода видео.

    vidobj.LoggingMode = 'disk'
  3. Создайте объект VideoWriter с набором профиля к Motion JPEG 2000.

    logfile = VideoWriter('logfile.mj2, 'Motion JPEG 2000')
  4. Сконфигурируйте объект ввода видео использовать объект VideoWriter.

    vidobj.DiskLogger = logfile;
  5. Теперь, когда объект ввода видео сконфигурирован для регистрации данных к файлу Motion JPEG 2000, инициируйте приобретение.

    start(vidobj)
  6. Ожидайте приобретения, чтобы закончиться.

    wait(vidobj, 5)
  7. При журналировании больших объемов данных к диску запись на диск иногда отстает от приобретения. Чтобы определить, записаны ли все кадры в диск, можно опционально использовать свойство DiskLoggerFrameCount.

    while (vidobj.FramesAcquired ~= vidobj.DiskLoggerFrameCount) 
        pause(.1)
    end
  8. Можно проверить, что свойства FramesAcquired и DiskLoggerFrameCount имеют идентичные значения при помощи этих команд и сравнения вывода.

    vidobj.FramesAcquired
    vidobj.DiskLoggerFrameCount
  9. Когда объект ввода видео больше не будет необходим, удалите его и очистите его от рабочей области.

    delete(vidobj)
    clear vidobj

Инструкции для Использования объекта VideoWriter регистрировать данные изображения

Отметьте следующее при использовании VideoWriter.

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

  • Если ЗАПУСКАЮТСЯ, называется многократно, не предоставляя новый объект VideoWriter, содержимое предыдущего файла будет стерто, когда ЗАПУСТЯТСЯ, называется.

  • Если объект VideoWriter был передан свойству DiskLogger, вы не должны изменять его.