В то время как объект входа видео работает, можно записать данные, полученные в файл диска. Логгирование изображений на диск обеспечивает запись ваших данных.
Для оптимальной эффективность для входа на диск требуется 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'
- Несжатый файл с индексированным видео. Используется только для монохромных устройств.
Этот пример использует устройство GigE Vision в полутоновом формате (Mono10
).
Создайте объект входа видео, который обращается к устройству сбора изображений GigE Vision и использует формат полутонового цвета со скоростью 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
свойство. Это приведет к остановке регистрации диска без регистрации всех данных.
Если START вызывается несколько раз без передачи нового объекта VideoWriter, содержимое предыдущего файла будет удалено при вызове START.
После передачи объекта VideoWriter в DiskLogger
свойство, вы не должны изменять его.