Этот пример показывает, как получить изображения потоковой передачи от устройства получения изображений, выполнить онлайновую обработку изображений на каждом кадре и отобразить обработанные кадры.
Результатом является альфа-смешение двух изображений, одно стационарный маятник, другой маятник в движении, делающие движущиеся функции кажутся прозрачными.
Этот пример требует Image Processing Toolbox™.
Регистрируйте и отобразите снимок состояния фона без перемещения функций.
% Access an image acquisition device. vidobj = videoinput('winvideo', 1, 'RGB24_320X240'); % Using the preview window, properly position the camera. preview(vidobj) pause(1) % Capture an image with no moving features. background = getsnapshot(vidobj); % Display the background image in a figure window. imshow(background);
Используя полученные данные изображения, выполните онлайновую обработку изображений и отобразите обработанные изображения в окне рисунка.
Для каждого переданного потоком фрейма изображения вычислите линейную комбинацию между тем кадром и фоновым изображением. Линейная комбинация эффективно альфа смешивает два изображения, таким образом, любые движущиеся функции кажутся прозрачными.
% Set the object into motion. pause(2); % Configure the figure to produce flash-free rendering. fig = gcf; fig.DoubleBuffer = 'on'); % Configure the acquisition. vidobj.FramesPerTrigger = 20; % Start the acquisition. start(vidobj) % While logging data, perform a linear combination between % the current and background images. current = getdata(vidobj, 1); transparent = imlincomb(0.5, current, 0.5, background); % Display the processed image. imshow(transparent);
% Repeat for all remaining images. while (vidobj.FramesAvailable > 0), % Perform a linear combination between the current and background images. current = getdata(vidobj, 1); transparent = imlincomb(0.5, current, 0.5, background); % Display the processed image. imshow(transparent); end
% Once the video input object is no longer needed, delete % it and clear it from the workspace. delete(vidobj) clear vidobj