Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2011-09-20
帖子: 1
声望力: 0 ![]() |
![]()
为什么一运行就死循环呢?而且目标检测的图像为全黑的
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, ![]() ![]() 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); 跪求高人指点,谢谢啦 |
![]() |
![]() |