Этот пример объясняет, как функции обратного вызова работают, и показывает, как использовать их.
Функции обратного вызова выполняются, когда связанное событие имеет место. Чтобы сконфигурировать коллбэк, чтобы выполниться для конкретного события, сконфигурируйте одно из свойств коллбэка объекта ввода видео:
ErrorFcn
FramesAcquiredFcn
StartFcn
StopFcn
TimerFcn
TriggerFcn
Этот пример использует функцию обратного вызова, найденную в
MATLABROOT\toolbox\imaq\imaqdemos\helper
директория, которая отображает кадр N'th, где 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'th.
% Stop the acquisition.
stop(vidobj)
Если объект ввода видео больше не необходим, удалите его и очистите его от рабочей области.
delete(vidobj)
clear vidobj