В этом примере объясняется работа функций обратного вызова и показано, как их использовать.
Функции обратного вызова выполняются при возникновении связанного события. Чтобы настроить обратный вызов для выполнения для определенного события, настройте одно из свойств обратного вызова объекта ввода видео:
ErrorFcn
FramesAcquiredFcn
StartFcn
StopFcn
TimerFcn
TriggerFcn
В этом учебном пособии используется функция обратного вызова, которая находится в
MATLABROOT\toolbox\imaq\imaqdemos\helper
каталог, который отображает N 'й кадр, где N предоставляется в качестве входного аргумента функции обратного вызова.
Выберите устройство для получения и настройте его для получения данных при выполнении ручного триггера.
% Access an image acquisition device. vidobj = videoinput('winvideo', 1); % Acquire an infinite number of frames when manually triggered. triggerconfig(vidobj, 'manual'); vidobj.FramesPerTrigger = inf;
Настройте объект ввода видео для выполнения функции обратного вызова при остановке сбора данных.
% Specify the N'th frame the callback function will display. frameNumber = 3; % Have the callback function executed when the acquisition ends. vidobj.StopFcn = {'util_showframe', frameNumber}; % Initiate the acquisition. start(vidobj)
После запуска устройства получения изображения теннисный мяч опускается в поле зрения камеры.
% Trigger the object for logging and acquire data for a few seconds.
trigger(vidobj)
pause(5);
Когда получение остановлено, это вызовет выполнение функции обратного вызова и отображение N 'го кадра.
% Stop the acquisition.
stop(vidobj)

Как только объект ввода видео больше не нужен, удалите его и удалите из рабочей области.
delete(vidobj)
clear vidobj