用MATLAB 实现的混合高斯模型 检测道路背景建模
clear all
v = VideoReader('F:\AllofGraduation\videoTrafficData\TESTVIDIODATA\car.avi');
% ----------------------- frame size variables -----------------------
%fr = step(v); % read the next video frame
%fr = v(1).cdata; % read in 1st frame as background frame
fr = read(v,1);
fr_bw = rgb2gray(fr); % convert background to greyscale
fr_size = size(fr);
width = fr_size(2);
height = fr_size(1);
fg = zeros(height, width);
bg_bw = zeros(height, width);
% --------------------- gmm variables -----------------------------------
C = 3; % number of gaussian components (typically 3-5)
M = 3; % number of background components
D = 2.5; % positive deviation threshold
alpha = 0.005; % learning rate (between 0 and 1) (from paper 0.01)
thresh = 0.25; % foreground threshold (0.25 or 0.75 in paper)
sd_init = 30/255; % initial standard deviation (for new components) var = 36 in paper
w = zeros(height,width,C); % initialize weights array
mean = zeros(height,width,C); % pixel means
sd = zeros(height,width,C); % pixel standard deviations
u_diff = zeros(height,width,C); % difference of e