• 大小: 5KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Matlab
  • 标签: matlab  高斯  

资源简介

matlab 高斯背景建模 用于对视频序列的背景建模,从而完成运动目标检测

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%高斯背景建模()
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
close all;  %clear obj removes obj from the MATLAB workspace.
tic;%计时开始%取第一幅符合要求的背景图、
% -----------------------  frame size variables -----------------------
File_name=‘E:\学习\背景—车\背景建模图片\‘;

str = int2str(1);
T = STRCAT(File_namestr‘.jpg‘);%
I = imread(T‘JPG‘);
I=rgb2gray(I);
I=I(:350:1000); 
[mns]=size(I);
q=zeros(mn);
fg = q;              %前景
bg_bw = q;           %背景

% --------------------- mog variables -----------------------------------
C = 3;                                  % 组成混合高斯的单高斯数目 (一般3-5)
M = 3;                                  % 
D = 2.5;                                % 阈值(一般2.5个标准差)
alpha = 0.01;                           % learning rate 学习率决定更新速度(between 0 and 1) (from paper 0.01)
thresh = 0.25;                          % foreground threshold 前景阈值(0.25 or 0.75 in paper)
sd_init = 6;                            % initial standard deviation 初始化标准差(for new components) var = 36 in paper
w = zeros(mnC);              % initialize weights array 初始化权值数组
mean = zeros(mnC);           % pixel means 像素均值
sd = zeros(mnC);             % pixel standard deviations 像素标准差
u_diff = zeros(mnC);         % difference of each pixel from mean 与均值的差
p = alpha/(1/C);                        % initial p variable 参数学习率(used to update mean and sd)
rank = zeros(1C);                      % rank of components (w/sd)

% ------initialize component means and weights 初始化均值和权值----------

pixel_depth = 8;                        % 8-bit resolution 像素深度为8位
pixel_range = 2^pixel_depth -1;         % pixel range 像素范围2的7次方0—255(# of possible values)

for i=1:m
    for j=1:n
        for k=1:C
            
            mean(ijk) = rand*pixel_range;     % means random (0-255之间的随机数)
            w(ijk) = 1/C;                     % weights uniformly dist
            sd(ijk) = sd_init;                % initialize to sd_init
            
        end
    end
end

%----- process frames -处理帧----------------------------------
E=10;  %背景序列个数
for k = 1:E  %迭代法更新背景  
     str = int2str(k);
     T = STRCAT(File_namestr‘.jpg‘);%
     It = imread(T‘JPG‘);
     
     fr_bw=rgb2gray(It);
     fr_bw=fr_bw(:350:1000); 
     % calculate difference of pixel values from mean 计算像素差值
    for l=1:C
        u_diff(::l) = abs(double(fr_bw) - double(mean(::l)));
    end
    
    % update gaussi

评论

共有 条评论