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、阀值不容易确定,主要是靠考虑光照、阴影等因素。