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))%显示前景图像
pigyun怎么样?PIGYunData成立于2019年,2021是PIGYun为用户提供稳定服务的第三年,目前商家提供香港CN2线路、韩国cn2线路、美西CUVIP-9929、GIA等线路优质VPS,基于KVM虚拟架构,商家采用魔方云平台,所有的配置都可以弹性选择,目前商家推出了七月优惠,韩国和美国所有线路都有相应的促销,六折至八折,性价比不错。点击进入:PIGYun官方网站地址PIGYUN优惠...
搬瓦工vps(bandwagonhost)现在面向中国大陆有3条顶级线路:美国 cn2 gia,香港 cn2 gia,日本软银(softbank)。详细带宽是:美国cn2 gia、日本软银,都是2.5Gbps~10Gbps带宽,香港 cn2 gia为1Gbps带宽,搬瓦工是目前为止,全球所有提供这三种带宽的VPS(云服务器)商家里面带宽最大的,成本最高的,没有第二家了! 官方网站:https...
HostKvm是一家成立于2013年的国外VPS服务商,产品基于KVM架构,数据中心包括日本、新加坡、韩国、美国、俄罗斯、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。本月,商家旗下俄罗斯、新加坡、美国、香港等节点带宽进行了大幅度升级,俄罗斯机房国内电信/联通直连,CN2线路,150Mbps(原来30Mbps)带宽起,目前俄罗斯和香港高防节点5折骨折码继续优惠中...