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

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

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

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

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

  • 'Motion JPEG 2000' - файл сжатого Motion JPEG 2000.

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

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

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

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

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

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

Логгирование данных на диск с помощью VideoWriter

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

  1. Создайте объект входа видео, который обращается к устройству сбора изображений GigE Vision и использует формат полутонового цвета со скоростью 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 свойство. Это приведет к остановке регистрации диска без регистрации всех данных.

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

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

Для просмотра документации необходимо авторизоваться на сайте