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

📄 matching.m

📁 these are the Mtlab functions to plot the figures in the book Communication system (by Haykin)
💻 M
字号:
% block matching algorithm
% Modified from me.m by Bo Tao, Princeton University
%
% Motion estimation with exhaustive search
%

%integer pel EBMA
function [vm,hm,pframe]=EBMA(refframe, newframe, Row, Col, bsize, Vrange, Hrange, vm, hm, pframe);

%assumes bsize=16
clear err
err=zeros(2*Vrange+1, 2*Hrange+1);

clear x;
x=zeros(16,16);

MAX_ERROR=255^2*16^2;


br=0;
for r=1:bsize:Row-15
br=br+1;
bc=0;
for c=1:bsize:Col-15
bc=bc+1;


   
   %assuming vm,hm store initial motion field
   v0=vm(br,bc);
   h0=hm(br,bc);
   x=newframe(r:r+15, c:c+15)-refframe(r+v0:r+v0+15, c+h0:c+h0+15);
   err0=sum(sum(abs(x)));
      
      
   bbr=0;
	for v=-Vrange+v0:Vrange+v0
	bbr=bbr+1;
	bbc=0;
	for h=-Hrange+h0:Hrange+h0
	bbc=bbc+1;
		if ((r+v<1) | (r+v>Row-15) | (c+h<1) | (c+h>Col-15))
			err(bbr, bbc)=MAX_ERROR;
		else
			x=newframe(r:r+15, c:c+15)- ...
			  refframe(r+v:r+v+15, c+h:c+h+15);
        err(bbr, bbc)=sum(sum(abs(x))); 
     end
	end     %the motion search window    
	end
			
	[y, i]=min(err);
	[errmin,j]=min(y);
	v=i(j)-Vrange-1+v0;
   h=j-Hrange-1+h0;

   
   if ((errmin>(err0-100))|(r+v<1) | (r+v>Row-15) | (c+h<1) | (c+h>Col-15)) %favor 0 MV if error is similar
      h=h0;
      v=v0;
   end;
   
	vm(br,bc)=v;
	hm(br,bc)=h;
   
   disp([r,c,br,bc,v,h,v0,h0]);
   pframe(r:r+15, c:c+15)=refframe(r+v:r+v+15, c+h:c+h+15);

end
end

⌨️ 快捷键说明

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