www.pudn.com > cylindpano1.rar > mosaic.m


function D=mosaic(image1,image2,i,j) 
% % %%%%%柱面全景图像拼合算法研究 
%  
% [i,j]=phase_correlation(image1,image2); 
 
[ra,ca,a]=size(image1); 
[rb,cb,b]=size(image2); 
Xa=image1;Ya=image2; 
% dis=i;%%%上下偏移量 
dis=i; 
EXa=zeros(abs(dis),ca,3)+255;%%%上下扩充图像边缘为白色 
EXb=zeros(abs(dis),cb,3)+255; 
if dis>1  
  Xa=[EXa;Xa]; 
  Ya=[Ya;EXb]; 
elseif dis<-1 
    Xa=[Xa;EXa]; 
    Ya=[EXb;Ya]; 
end 
dm=j;%%%拼缝宽度,在此处限定宽度不超过50pel 
% if dm<=50 
   A=Xa(:,1:(ca-dm-1),:); 
   B1=Xa(:,(ca-dm):ca,:); 
   B2=Ya(:,1:dm,:); 
   B=imagefusion02(B1,B2);%%部分叠加(融合) 
   C=Ya(:,(dm+1):cb,:);%%剪裁出第二图的剩余部分 
% else 
%     dm=50; 
%     A=Xa(:,1:(ca-dm-1),:); 
%    B1=Xa(:,(ca-dm):ca,:); 
%    B2=Ya(:,(j-dm):j,:); 
%    B=imagefusion02(B1,B2);%%部分叠加(融合) 
%    C=Ya(:,(j+1):cb,:);%%剪裁出第二图的剩余部分 
% end 
     
   D=[A,B,C];%%聚合,实现拼接 
   %%%%消除累积误差 
   [r,c]=size(D); 
   if dis>1  
       D=D(1:(r-dis),:,:); 
   elseif dis<-1 
       D=D((abs(dis)+1):r,:,:); 
   end 
        
%    figure,imshow(D);