В этом примере показано, как сконфигурировать свойства регистрации для логгирования на диске, а затем инициировать сбор для регистрации.
Данные, полученные с устройства сбора изображений, могут быть записаны в память, на диск или и то, и другое. По умолчанию данные регистрируются в памяти. Чтобы изменить режим регистрации, сконфигурируйте LoggingMode
объекта входа видео свойство.
% Access an image acquisition device, using a grayscale video format with % 10 bits per pixel. vidobj = videoinput('gige', 1, 'Mono10'); % View the default logging mode. currentLoggingMode = vidobj.LoggingMode;
currentLoggingMode = memory
% List all possible logging modes. set(vidobj, 'LoggingMode')
[ {memory} | disk | disk&memory ]
% Configure the logging mode to disk. vidobj.LoggingMode = 'disk'; % Verify the configuration. currentLoggingMode = vidobj.LoggingMode;
currentLoggingMode = disk
Логгирование на диск требуется MATLAB ® VideoWriter
объект. VideoWriter
является функцией MATLAB, а не функцией тулбокса. После того, как вы создаете и конфигурируете VideoWriter
предоставьте его в видео, вход DiskLogger
объекта свойство.
VideoWriter
предоставляет несколько различных профилей, которые регистрируют данные в различных форматах. Этот пример использует профиль Motion JPEG 2000, который может регистрировать однополосные (полутоновые) данные, а также многобайтовые данные. Полный список профилей, предоставленных VideoWriter
можно найти в документации.
% Create a |VideoWriter| object. logfile = VideoWriter('logfile.mj2', 'Motion JPEG 2000')
VideoWriter General Properties: Filename: 'logfile.mj2' Path: 'C:\Temp' FileFormat: 'mj2' Duration: 0 Video Properties: ColorChannels: Height: Width: FrameCount: 0 FrameRate: 30 VideoBitsPerPixel: VideoFormat: VideoCompressionMethod: 'Motion JPEG 2000' CompressionRatio: 10 LosslessCompression: 0 MJ2BitDepth:
% Configure the video input object to use the |VideoWriter| object.
vidobj.DiskLogger = logfile;
Теперь, когда объект входа видео сконфигурирован для логгирования данных в файле Motion JPEG 2000, инициируйте сбор.
% Start the acquisition. start(vidobj) % Wait for the acquisition to finish. wait(vidobj, 5)
При регистрации больших объемов данных на диск запись на диск иногда отстает от сбора. Чтобы определить, все ли системы координат были записаны на диск, используйте DiskLoggerFrameCount
свойство.
while (vidobj.FramesAcquired ~= vidobj.DiskLoggerFrameCount) pause(.1) end
Проверьте, что FramesAcquired
свойство и DiskLoggerFrameCount
свойство имеет то же значение.
vidobj.FramesAcquired
ans = 10
vidobj.DiskLoggerFrameCount
ans = 10
% When the video input object is no longer needed, delete % it and clear it from the workspace. delete(vidobj) clear vidobj