В этом примере показано, как сконфигурировать свойства логгирования для дискового логгирования и затем инициировать захват, чтобы регистрировать.
Данные, полученные от устройства получения изображений, могут регистрироваться к памяти к диску или обоим. По умолчанию данные регистрируются к памяти. Чтобы изменить режим логгирования, сконфигурируйте объект ввода видео 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