混合高斯背景建模matlab代码_第1页
混合高斯背景建模matlab代码_第2页
混合高斯背景建模matlab代码_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

clear all% source = aviread(C:VideoSourcetrafficsan_fran_traffic_30sec_QVGA);source = mmreader(SampleVideo.avi);frameQYT=get(source,NumberOfFrames);% -frame size variables -fr = read(source,1); % 读取第一帧作为背景fr_bw = rgb2gray(fr); % 将背景转换为灰度图像fr_size = size(fr); %取帧大小width = fr_size(2);height = fr_size(1);fg = zeros(height, width);bg_bw = zeros(height, width);% - mog variables -C = 4; % 组成混合高斯的单高斯数目 (一般3-5)M = 0; % 组成背景的数目D = 2.5; % 阈值(一般2.5个标准差)alpha = 0.01; % learning rate 学习率决定更新速度(between 0 and 1) (from paper 0.01)thresh = 0.75; % foreground threshold 前景阈值(0.25 or 0.75 in paper)sd_init = 6; % initial standard deviation 初始化标准差(for new components) var = 36 in paperw = 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 each pixel from mean 与均值的差p = alpha/(1/C); % initial p variable 参数学习率(used to update mean and sd)rank = zeros(1,C); % rank of components (w/sd)% -initialize component means and weights 初始化均值和权值-pixel_depth = 8; % 8-bit resolution 像素深度为8位pixel_range = 2pixel_depth -1; % pixel range 像素范围2的7次方0255(# of possible values)for i=1:height for j=1:width for k=1:C mean(i,j,k) = rand*pixel_range; % means random (0-255之间的随机数) w(i,j,k) = 1/C; % weights uniformly dist sd(i,j,k) = sd_init; % initialize to sd_init end endend%- process frames -处理帧-,这里去第八帧 n = 8; fr = read(source,n); % read in frame 读取帧 fr_bw = rgb2gray(fr); % convert frame to grayscale 转换为灰度图像 % calculate difference of pixel values from mean 计算像素差值 for m=1:C u_diff(:,:,m) = abs(double(fr_bw) - double(mean(:,:,m); end % update gaussian components for each pixel 更新每个像素的背景模型 for i=1:height for j=1:width match = 0; for k=1:C if (abs(u_diff(i,j,k) thresh) k=k-1; M=k; end%? 这里有问题,背景权值和大于阈值时,背景建模的数目M取k-1, end % if no components match, create new component 如果没有匹配的模型则创建新模型 if (match = 0) min_w, min_w_index = min(w(i,j,:); mean(i,j,min_w_index) = double(fr_bw(i,j); sd(i,j,min_w_index) = sd_init; end rank = w(i,j,:)./sd(i,j,:); % calculate component rank 计算模型优先级 rank_ind = 1:1:C; % calculate foreground 计算前景 while (match = 0)&(kM)%? 这里用于前景计算的高斯模型应该是C-M,所以这里kM if (abs(u_diff(i,j,rank_ind(k) = D*sd(i,j,rank_ind(k) fg(i,j) = 0; %black = 0 else fg(i,j) = fr_bw(i,j); end k = k+1; if(k=5) k=k-1; break end end end end fi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论