В этом примере показано, как создать алгоритм видео для обнаружения движения с использованием метода оптического потока. Этот пример использует Приобретение Изображения Системный Объект Toolbox™ наряду с Системными объектами Computer Vision Toolbox™.
В этом примере осуществляется потоковая передача изображений из устройства получения изображений для обнаружения движения в реальном видео. Он использует метод оптической оценки потока для оценки векторов движения в каждом кадре видеопоследовательности. Как только векторы движения определены, мы нарисуем их над движущимися объектами в видеопоследовательности.
Создайте объект «Система видеоустройств».
vidDevice = imaq.VideoDevice('winvideo', 1, 'YUY2_320x240', ... 'ReturnedColorSpace', 'rgb', ... 'DeviceProperties.Brightness', 130, ... 'DeviceProperties.Sharpness', 50);
Создайте объект System для оценки направления и скорости движения объекта от одного видеокадра к другому с использованием оптического потока.
opticFlow = opticalFlowHS;
Создайте цикл обработки для обнаружения движения во входном видео. В этом цикле используются созданные выше системные объекты.
% Set up for stream nFrames = 0; while (nFrames<100) % Process for the first 100 frames. % Acquire single frame from imaging device. frameRGB = vidDevice(); % Compute the optical flow for that particular frame. flow = estimateFlow(opticFlow,rgb2gray(frameRGB)); imshow(frameRGB) hold on plot(flow,'DecimationFactor',[5 5],'ScaleFactor',25) hold off % Increment frame count nFrames = nFrames + 1; end

В окне рисунка видно, что в примере обнаружено движение черного файла. Движущиеся объекты представлены с использованием линий векторного поля, как показано на изображении.
Здесь вызывается метод деблокирования объектов System для закрытия всех открытых файлов и устройств.
release(vidDevice);