c lea r a l l
%so u rce=av iread('C:\V id eo\So u rce\traff ic\sa n_fr a n_traff ic_30 sec_QVGA');source=mmreader('SampleVideo.avi');frameQYT=get(sou rce,'Nu m berOfFram es');
%-----------------------frames izevariab les-----------------------fr=read(so u rce,1);%读取第一帧作为背景fr_bw=rg b2g ray(fr);%将背景转换为灰度图像fr_s ize=s ize(fr);%取帧大小w id t h=fr_s ize(2);height=fr_size(1);fg=zeros(h e ig ht,w idth);bg_bw=zeros(he ig ht,w idth);
%---------------------mogvariables-----------------------------------
C=4;%组成混合高斯的单高斯数目(一般3-5)
M=0;%组成背景的数目
D=2.5;%阈值一般2.5个标准差a lpha=0.01;%learn ingrate学习率决定更新速度(between0and 1)(frompaper0.01)thresh=0.75;%foreg roundthreshold 前 景 阈 值(0.25or0.75 in paper)sd_in it=6;%in it ia lstandarddev iat ion 初 始 化 标 准 差(fornewcomponents)var=36inpaperw=zeros(h e ig ht,w idth,C);%in it ia l izewe ig htsarray初始化权值数组mean=zeros(h eight,width,C);%pixelmeans像素均值sd=zero s(h e ig h t,w id t h,C);%p ix e lsta n d a rd d ev iat io n s像素标准差u_diff=zeros(h eight,width,C);%differenceofeachpixelfrom mean与均值的差p=alpha/(1/C);%in it ia lpvariab le参数学习率(usedtoupdatemeanandsd)rank=zeros(1,C);%rankofcomponents(w/sd)
%------in itia l izecomponentmeansandweights初始化均值和权值----------pixel_depth=8;%8-bitreso lution像素深度为8位pixel_range=2^pixel_depth-1;%pixelrange像素范围2的7次方0—255 #ofpossib leva lues)fori=1:heightfo rj=1:wid thfork=1:Cmean(i,j,k)=rand*pixe l_range;%meansrandom(0-255之间的随机
数)w(i,j,k)=1/C;%weig htsu n iform ly d istsd(i,j,k)=sd_in it;%in it ia l izetosd_in itendendend
%-----p rocessfram es-处理帧--这里去第八帧n=8;fr=read(sou rce,n);%read inframe读取帧fr_bw=rg b2g ray(fr);%co nvertframetog rayscale转换为灰度图像
%calculated ifferenceofpixelvaluesfrommean计算像素差值form=1:Cu_d iff(:,:,m)=abs(d o u b le(fr_bw)-do u ble(mean(:,: ,m)));end
%updategaussiancomponentsforeachpixel更新每个像素的背景模型fori=1:heightfo rj=1:widthmatch=0;fork=1:Cif(abs(u_diff(i,j,k))<=D*sd(i,j,k))%pixelmatchescomponent像素匹配了模型match=1;%variabletosig na lcom ponentmatch设置
匹配记号
%u pdateweig hts,mean,sd,p更新权值均值 标准差和参数学习率w(i,j,k)=(1-alpha)*w(i,j,k)+alpha;p=alpha/w(i,j,k);mean(i,j,k)=(1-p)*mean(i,j,k)+p*d o u ble(fr_bw(i,j));sd(i,j,k)=sq rt((1-p)*(sd(i,j,k)^2)+p*((d o u b le(fr_bw(i,j))-m ea n(i,j,k)))^2);else%p ixeldoesn'tmatchcomponent几个模型中都没有匹配的w(i,j,k)=(1-a lpha)*w(i,j,k);%weightsl igh lydecreases权值减小endendbg_bw(i,j)=0;fork=1:Cbg_bw(i,j)=bg_bw(i,j)+mean(i,j,k)*w(i,j,k);%更新背景if(bg_bw(i,j)>thresh)k=k-1;
M=k;end%???? 这里有问题背景权值和大于阈值时 背景建模的数目M取k-1,end
%ifnocomponentsmatch,createnewcomponent如果没有匹配的模型则创建新模型if(match==0)
[m in_w,m in_w_index]=m in(w(i,j,:));m ean(i,j,m in_w_ind ex)=d o u b le(fr_bw(i,j));sd(i,j,m in_w_index)=sd_in it;endrank=w(i,j,:)./sd(i,j,:);%ca lculatecomponentrank计算模型优先级ran k_ind=[1:1:C];
%calcu lateforeg rou nd计算前景whi le((match==0)&&(k>M))%?????C- 这里用于前景计算的高斯模型应该是M,所以这里k>Mif(abs(u_diff(i,j,rank_ind(k)))<=D*sd(i,j,rank_ind(k)))fg
(i,j)=0;%black=0e lsefg(i,j)=fr_b w(i,j);endk=k+1;if(k==5)k=k-1;b rea kendendendendfigure(1),subp lot(3,1,1),imshow(fr)%显示输入图像subplot(3,1,2),imshow(u int8(bg_bw))%显示背景图像subplot(3,1,3),imshow(u int8(fg))%显示前景图像
ttcloud怎么样?ttcloud是一家海外服务器厂商,运营服务器已经有10年时间,公司注册地址在香港地区,业务范围包括服务器托管,机柜托管,独立服务器等在内的多种服务。我们后台工单支持英文和中文服务。TTcloud最近推出了新上架的日本独立服务器促销活动,价格 $70/月起,季付送10Mbps带宽。也可以跟进客户的需求进行各种DIY定制。点击进入:ttcloud官方网站地址TTcloud拥有自...
天上云服务器怎么样?天上云是国人商家,成都天上云网络科技有限公司,专注于香港、美国海外云服务器的产品,有多年的运维维护经验。世界这么大 靠谱最重,我们7*24H为您提供服务,贴心售后服务,安心、省事儿、稳定、靠谱。目前,天上云香港大带宽物理机服务器572元;20Mbps带宽!三网CN2线路,香港沙田数据中心!点击进入:天上云官方网站地址香港沙田数据中心!线路说明 :去程中国电信CN2 +中国联通+...
iON Cloud怎么样?iON Cloud今天发布了7月份优惠,使用优惠码:VC4VF8RHFL,新购指定型号VPS半年付或以上可享八五折!iON的云服务器包括美国洛杉矶、美国圣何塞(包含了优化线路、CN2 GIA线路)、新加坡(CN2 GIA线路、PCCW线路、移动CMI线路)这几个机房或者线路可供选择,有Linux和Windows系统之分,整体来说针对中国的优化是非常明显的,机器稳定可靠,比...