www.pudn.com > backgroundtest.rar > backgroundtest3.m


I=ones(8,5); 
q=reshape(49:56,8,1); 
I(:,1)=q; 
I(:,2)='.'; 
I(:,3)='b'; 
I(:,4)='m'; 
I(:,5)='p'; 
L=setstr(I);        %将ASCII码转为字符串; 
 
 
  
 
c=imread(L(1,:)); 
[m n]=size(c); 
I0=uint8(ones(m,n,8)); 
for k=1:8 
    j=imread(L(k,:)); 
    I0(:,:,k)=j; 
end 
[m n o]=size(I0); 
Q=uint8(ones(m,n)); 
 
 
%此算法基于物体运动较快,在较短时间内就会超出重叠范围;如果取第一帧,中间帧和最后一帧, 
%它们不存在重叠区域; 
%算法的具体实现:截取三帧图像,这三帧分别是:第一帧,中间帧,和最后一帧; 
%将第一帧和最后一帧作差分,如果只大于一定阀值则取中间帧作为背景值,否则就取第一帧(或最后一帧)的相应值。 
%逐像素处理,最后构成背景。 
 
I1=double(I0(:,:,1)); 
I5=double(I0(:,:,5)); 
I8=double(I0(:,:,8)); 
i18=abs(I1-I8); 
[m n]=size(I1); 
Q=ones(m,n); 
for i=1:m; 
    for j=1:n; 
      if i18(i,j)>11; 
        Q(i,j)=I5(i,j); 
      else 
        Q(i,j)=I1(i,j); 
       end  
    end 
end 
q=uint8(Q); 
imshow(q) 
 
 
%主要缺点:1、局限性较大,鲁棒性不好。 
%         2、阀值不容易确定,主要是靠考虑光照、阴影等因素。