exponenta event banner

Запись данных образа на диск

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

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

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

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

  • 'Motion JPEG 2000' - Сжатый файл JPEG 2000 движения.

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

  • 'Motion JPEG AVI' - сжатый AVI-файл с помощью кодека Motion JPEG.

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

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

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

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

Запись данных на диск с помощью VideyWriter

В этом примере используется устройство GigE Vision в градациях серого (Mono10).

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

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

    vidobj.LoggingMode = 'disk'
  3. Создайте объект VideyWriter с профилем 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

Рекомендации по использованию объекта VideyWriter для регистрации данных изображения

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

  • Не следует удалять объект ввода видео до завершения регистрации, как указано в DiskLoggerFrameCount свойство, равное FramesAcquired собственность. Это приведет к остановке ведения журнала без регистрации всех данных.

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

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