В этом примере показано, как к данным логов с промежутками вместо того, чтобы регистрировать целый захват.
В определенных приложениях не может быть необходимо регистрировать каждую систему координат, обеспеченную устройством получения изображений. На самом деле это может быть более практичным и находчивым, чтобы регистрировать системы координат в определенных интервалах.
Чтобы регистрировать системы координат в постоянном интервале, сконфигурируйте свойство FrameGrabInterval объекта ввода видео. При конфигурировании свойства к целочисленному значению N указывает, что каждая Энная система координат должна регистрироваться, начиная с первой системы координат.
Отметьте, указав, что значение FrameGrabInterval не изменяет уровень, на котором устройство обеспечивает системы координат (частота кадров устройства). Это только задает интервал, в котором регистрируются системы координат.
Создайте ввод видео, возражают и конфигурируют желаемый интервал логгирования. Интервал логгирования определяется значением свойства FrameGrabInterval.
% Access an image acquisition device. vidobj = videoinput('winvideo', 1); % Configure the number of frames to log. framesToLog = 9; vidobj.FramesPerTrigger = framesToLog; % Configure the logging interval. This specifies that % every 10th frame provided by the device is to be logged. grabInterval = 10; vidobj.FrameGrabInterval = grabInterval; % Access the device's video source and configure the device's frame rate. % FrameRate is a device specific property, therefore, it may not be supported by % some devices. frameRate = 30; src = getselectedsource(vidobj); src.FrameRate = num2str(frameRate);
Инициируйте захват изображений и получите регистрируемые системы координат и их метки времени.
% Start the acquisition. start(vidobj) % Wait for the acquisition to end. wait(vidobj, 10) % Retrieve the data. [frames, timeStamp] = getdata(vidobj);
Зная фактическую частоту кадров устройства и интервал захвата, в котором регистрировались системы координат, количество кадров, регистрируемое в секунду, может быть вычислено.
% Number of frames logged per second.
loggedPerSec = frameRate/grabInterval
loggedPerSec = 3
Зная количество кадров, регистрируемое в секунду, ожидаемый временной интервал между каждой регистрируемой системой координат может быть вычислен и сравнен.
% Expected number of seconds between each logged frame.
loggingRate = 1/loggedPerSec
loggingRate = 0.3333
% Actual time difference between each logged frame. % Note that frames were logged at a constant interval. diff(timeStamp')
ans = 0.3332 0.3338 0.3331 0.3332 0.3330 0.3332 0.3331 0.3330
% Determine the average time difference between frames.
avgDiff = mean(diff(timeStamp'))
avgDiff = 0.3332
percentError = ( abs(loggingRate-avgDiff) ) * 100
percentError = 0.0125
% Once the video input object is no longer needed, delete % it and clear it from the workspace. delete(vidobj) clear vidobj