Регистрация данных к диску

Этот пример показывает, как сконфигурировать свойства журналирования для дискового журналирования и затем инициировать приобретение, чтобы регистрировать.

Конфигурирование режима журналирования

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