查看单个帖子
旧 2011-09-28, 17:03   #1
alilang
初级会员
 
注册日期: 2011-09-20
帖子: 1
声望力: 0
alilang 正向着好的方向发展
默认 视频监控 目标检测 核密度估计建模

为什么一运行就死循环呢?而且目标检测的图像为全黑的
clear;
source=aviread('highwayII_raw');
fr=source(1).cdata;
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);
update=zeros(height,width,50);
u_diff=zeros(height,width);
vari=zeros(height,width);
s=0;
N=50;
%%%%%%%%%%%%%%%%%%%%% 样本空间 %%%%%%%%%%%%


for c=1:length(source); %%%%%%%%%%%%%%%%%设置样本空间%%%%%%%%%%%%%%%%%%%%%
fr=source(c).cdata;
fr_bw=rgb2gray(fr);

for c=1:N
update(:,:,c)=fr_bw;
end


temp=0;
for i=1:height
for j=1:width
for n=1:49
fr1_bw=update(:,:,n);
fr2_bw=update(:,:,n+1);
temp=temp+1;
S{1,temp}=abs(double(fr1_bw(i,j,)-double(fr2_bw(i,j,));
end
u_diff(i,j)=median(cell2mat(S));
u_diff(i,j)=max(1.0,u_diff(i,j));
vari(i,j)=u_diff(i,j)/(0.68 * sqrt(2.0));
u=0.0;
for t=1:50
z=(double(fr_bw(i,j))-double(update(i,j,t)))/double(vari(i,j));
z=z*z/2;
tem1=exp(-1.0*z);
tem2=sqrt(2*acos(-1.0))*vari(i,j);
u=u+double(tem1)/double(tem2);
end
pt=u/50;
if(pt<0.04)
fg(i,j)=1;
else
fg(i,j)=0;
update(i,j,1)=fr_bw(i,j);
end
end
end


figure(1),subplot(2,1,1),imshow(fr_bw);
subplot(2,1,2),imshow(uint8(fg));

Mov1(c) = im2frame(uint8(fr_bw),gray); % put frames into movie
Mov2(c) = im2frame(uint8(fg),gray);
end
movie2avi(Mov1,'Vedio','fps',30); % save movie as avi
movie2avi(Mov2,'forground','fps',30);

跪求高人指点,谢谢啦
alilang 当前离线   回复时引用此帖