clear; clc; close all;
%% Parameters
param.numberOfSamples = 10;
param.matchingThreshold = 10;
param.matchingNumber = 2;
param.updateFactor = 5;
param.numberOfHistoryImages = 2;
param.lastHistoryImageSwapped = 0;
%% Video Information
filename = 'video.avi';
vidObj = VideoReader(filename);
numFrames = vidObj.NumberOfFrames; %视频总的帧数
firstFrame = true;
height = vidObj.Height;
width = vidObj.Width;
param.height = height;
param.width = width;
%% ViBe Moving Object Detection
for k=1:numFrames
vidFrame = read(vidObj,k);
% figure(1), imshow(vidFrame), title('Original Image');
vidFrame = rgb2gray(vidFrame);
vidFrame = double(vidFrame);
tic;
if firstFrame
firstFrame = false;
initViBe;
end
segmentationMap = vibeSegmentation(vidFrame, historyImages, historyBuffer, param);
[historyImages, historyBuffer] = vibeUpdate(vidFrame, segmentationMap, historyImages, historyBuffer, param, ...
jump, neighborX, neighborY, position);
segmentationMap = medfilt2(segmentationMap);
toc;
figure(2), imshow(segmentationMap), title('Segmentation');
end
提取码:jy5f
© 著作权归作者所有