В этом примере показано, как получить изображения потоковой передачи от устройства получения изображений, выполните онлайновую обработку изображений на каждой системе координат и отобразите обработанные кадры.
Результатом является альфа-смешение двух изображений, одно стационарный маятник, другой маятник в движении, делающие движущиеся функции кажутся прозрачными.
Регистрируйте и отобразите снимок состояния фона без перемещения функций.
% 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); % Convert the background from uint8 to double. background = double(background)/255; % Display the background image in a figure window. imagesc(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, 'double'); transparent = (current * 0.5) + (background * 0.5); % Display the processed image. imagesc(transparent);
% Repeat for all remaining images. while (vidobj.FramesAvailable > 0), % Perform a linear combination between the current and background images. current = getdata(vidobj, 1, 'double'); transparent = (current * 0.5) + (background * 0.5); % Display the processed image. imagesc(transparent); end
% Once the video input object is no longer needed, delete % it and clear it from the workspace. delete(vidobj) clear vidobj