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