⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 move.m

📁 motion estimation motion estimation motion estimation motion estimation
💻 M
字号:
function F=move(y2,y1)
[m,n]=size(y1);
%求出图中每个点对x,y,t的导数,所有边界的点导数取0
for n1=2:m-1
    for n2=2:n-1
pdx1(n1-1,n2-1)=(1/4)*(y1(n1,n2+1)-y1(n1,n2)+y1(n1+1,n2+1)-y1(n1+1,n2)+y2(n1,n2+1)-y2(n1,n2)+y2(n1+1,n2+1)-y2(n1+1,n2));
pdy1(n1-1,n2-1)=(1/4)*(y1(n1+1,n2)-y1(n1,n2)+y1(n1+1,n2+1)-y1(n1,n2+1)+y2(n1+1,n2)-y2(n1,n2)+y2(n1+1,n2+1)-y2(n1,n2+1));
pdt1(n1-1,n2-1)=(1/4)*(y2(n1,n2)-y1(n1,n2)+y2(n1,n2+1)-y1(n1,n2+1)+y2(n1+1,n2)-y1(n1+1,n2)+y2(n1+1,n2+1)-y1(n1+1,n2+1));
  end
end
pdx=zeros(m,n);
pdy=zeros(m,n);
pdt=zeros(m,n);
pdx(2:m-1,2:n-1)=pdx1;
pdy(2:m-1,2:n-1)=pdy1;
pdt(2:m-1,2:n-1)=pdt1;
% 将导数都写成向量的形式
for i=1:m
      for j=1:n
          pdx2(n*(i-1)+j)=pdx(i,j);
          pdy2(n*(i-1)+j)=pdy(i,j);
          pdt2(n*(i-1)+j)=pdt(i,j);
      end
  end

%估计出每个点的运动矢量,即速度vxx,vyy,一共有m*n个点
  vx(1)=0;
  vy(1)=0;
  a=100;
  mm=5;
  k=1;
  for k=1:m*n
      for s=1:mm
  vx(s+1)=vx(s)-(pdx2(k)*(pdx2(k)*vx(s)+pdy2(k)*vy(s)+pdt2(k))/(a^2+pdx2(k)^2+pdy2(k)^2));
  vy(s+1)=vy(s)-(pdy2(k)*(pdx2(k)*vx(s)+pdy2(k)*vy(s)+pdt2(k))/(a^2+pdx2(k)^2+pdy2(k)^2));
end
vxx(k)=vx(mm+1);
vyy(k)=vy(mm+1);
vxx(k)=round(vxx(k));
vyy(k)=round(vyy(k));





vx(1)=0;
vy(1)=0;
end




%将运动矢量写成矩阵的形式vxxx,vyyy
%figure;
for iii=1:m
  for jjj=1:n
   vxxx(iii,jjj)=vxx((iii-1)*n+jjj);  
   vyyy(iii,jjj)=vyy((iii-1)*n+jjj);  
  %drawx=[jjj,jjj+vxxx(iii,jjj)];
  %drawy=[iii,iii+vyyy(iii,jjj)];
  %line(drawx,drawy);




end
end

%test
for u=1:m
    for v=1:n
        y1y( u+vyyy(u,v),v+vxxx(u,v))=y1(u,v);
    end
end
figure,imshow(y1y,[])
t=y2-y1y;
%for uu=1:m
 %   for vv=1:n
  %  if  (t(uu,vv))<=50
   % t(uu,vv) =0;  
   % end
   % end
   %end
        





%估计出F矩阵
%for ii=1:m*n
    
   
    %FF(ii)=ii-n*vyy(ii)-vxx(ii);
    %FF(ii)=ii+n*vyy(ii)+vxx(ii);
    
    
 %if FF(ii)<=0
  %      FF(ii)=1;
  
  % elseif FF(ii)>=m*n
  %      FF(ii)=m*n;
  % end

  %end
%FF=uint(FF);



%F=sparse(1:m*n,FF,ones(1,m*n),m*n,m*n,m*n);


%test

%uu=showshow(y1,F);
%figure,imshow(uu,[]);
%aa=uu-y2;
%b=3;










 

 









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -