ML0007基于Matlab运动目标检测背景建模(混合高斯模型)

2021年10月19日 0 条评论 987 次阅读 0 人点赞

I=imread('1bmpfile.bmp');               % 读入第一帧作为背景帧
fr_bw = I;     
[height,width] = size(fr_bw);           %求每帧图像大小
fg = zeros(height, width);              %定义前景和背景矩阵
bg_bw = zeros(height, width);

C = 3;                                  % 单高斯模型的个数(通常为3-5)
M = 3;                                  % 代表背景的模型个数
D = 2.5;                                % 偏差阈值
alpha = 0.01;                           % 学习率
thresh = 0.25;                          % 前景阈值
sd_init = 15;                            % 初始化标准差
w = zeros(height,width,C);              % 初始化权重矩阵
mean = zeros(height,width,C);           % 像素均值
sd = zeros(height,width,C);             % 像素标准差
u_diff = zeros(height,width,C);         % 像素与某个高斯模型均值的绝对距离
p = alpha/(1/C);                        % 初始化p变量,用来更新均值和标准差
rank = zeros(1,C);                      %各个高斯分布的优先级(w/sd)

pixel_depth = 8;                        % 每个像素8bit分辨率
pixel_range = 2^pixel_depth -1;         % 像素值范围[0,255]

for i=1:height
    for j=1:width
        for k=1:C
            
            mean(i,j,k) = rand*pixel_range;     %初始化第k个高斯分布的均值
            w(i,j,k) = 1/C;                     % 初始化第k个高斯分布的权重
            sd(i,j,k) = sd_init;                % 初始化第k个高斯分布的标准差
            
        end
    end
end

提取码:5nr0

极寒钛

别给思维设限