В то время как объект ввода видео запускается, можно регистрировать изображения, передававшие к дисковому файлу. Логгирование данных изображения к диску обеспечивает запись ваших данных.
Для лучшей эффективности, регистрируя к диску требует 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'
— Сжатый файл AVI с помощью кодека Движущегося JPEG.
'Uncompressed AVI'
— Несжатый файл AVI с RGB24
видео.
'MPEG-4'
— Сжатый файл MPEG-4 с кодированием H.264 (системы с Windows 7 или macOS 10.7 и позже).
'Grayscale AVI'
— Несжатый файл AVI с полутоновым видео. Только используемый для монохромных устройств.
'Indexed AVI'
— Несжатый файл AVI с индексируемым видео. Только используемый для монохромных устройств.
Этот пример использует устройство Видения GigE в полутоновом формате (Mono10
).
Создайте объект ввода видео, что доступы устройство получения изображений Видения GigE и используют полутоновый формат на уровне 10 бит на пиксель.
vidobj = videoinput('gige', 1, 'Mono10');
Можно регистрировать полученные данные к памяти к диску или обоим. По умолчанию данные регистрируются к памяти. Чтобы изменить режим логгирования в диск, сконфигурируйте объект ввода видео LoggingMode
свойство.
vidobj.LoggingMode = 'disk'
Создайте объект VideoWriter с набором профиля к Motion JPEG 2000.
logfile = VideoWriter('logfile.mj2, 'Motion JPEG 2000')
Сконфигурируйте объект ввода видео использовать VideoWriter
объект.
vidobj.DiskLogger = logfile;
Теперь, когда объект ввода видео сконфигурирован для регистрации данных к файлу Motion JPEG 2000, инициируйте захват.
start(vidobj)
Ожидайте захвата, чтобы закончиться.
wait(vidobj, 5)
При логгировании больших объемов данных к диску запись на диск иногда отстает от захвата. Чтобы определить, записаны ли все системы координат в диск, можно опционально использовать DiskLoggerFrameCount
свойство.
while (vidobj.FramesAcquired ~= vidobj.DiskLoggerFrameCount) pause(.1) end
Можно проверить что FramesAcquired
и DiskLoggerFrameCount
свойства имеют идентичные значения при помощи этих команд и сравнения выхода.
vidobj.FramesAcquired vidobj.DiskLoggerFrameCount
Когда объект ввода видео больше не будет необходим, удалите его и очистите его от рабочей области.
delete(vidobj) clear vidobj
Отметьте следующее при использовании VideoWriter.
Вы не должны удалять объект ввода видео, пока логгирование не было завершено, как обозначено DiskLoggerFrameCount
свойство, равняющееся FramesAcquired
свойство. Выполнение так заставит дисковое логгирование останавливаться безо всех регистрируемых данных.
Если ЗАПУСКАЮТСЯ, называется многократно, не предоставляя новый объект VideoWriter, содержимое предыдущего файла будет стерто, когда ЗАПУСТЯТСЯ, называется.
Если объект VideoWriter был передан DiskLogger
свойство, вы не должны изменять его.