www.pudn.com > cylindpano1.rar > cylinpano2images.m
% % %%%%%柱面全景图像拼合算法研究
%
clc;clear;
image1=(imread('D3.jpg'));[h,w,r]=size(image1);
image2=(imread('D4.jpg'));T0(:,:,:,1)=image1;T0(:,:,:,2)=image2;
subplot(121),imshow(image1);subplot(122),imshow(image2);
image11=multi_resolution(image1,2);
image22=multi_resolution(image2,2);
[r1,c1,d1]=size(image11);
[r2,c2,d2]=size(image22);
[i,j]=poc_2pow(image11,image22);
%%%%%%%%%%%%%%%%%%%%%相位相关计算偏移量
tic
fprintf('相位相关计算偏移量...');
[i,j]=poc_2pow(image11,image22);
coor_shift(1,1)=i;
coor_shift(1,2)=j;
coor_shift(2,1)=0;coor_shift(2,2)=0;
coor_shift=coor_shift*2^2;%%%将金字塔子层中的偏移量转换到原图的偏移量
toc
%%%%%%%%%%%%%%%%%变换到柱面坐标系
tic
fprintf('变换到柱面坐标系...');
f=sqrt(h^2+w^2);
[T1,coor_shift02]=coortransf(T0,f,coor_shift);
toc
%%%%%%%%%%%%%融合重叠部分
tic
fprintf('融合重叠部分,拼接全图...');
panorama1=mosaic(T1(:,:,:,1),T1(:,:,:,2),coor_shift02(1,1),coor_shift02(1,2));
toc
%%%%%%%%%%%%%%%%重构图像
tic
fprintf('保存、显示结果...');
imwrite(panorama1,'pic2.jpg','jpg');
imshow(panorama1,[]);
toc
% imr1=imresize(image11,4)+e1;
% imr2=imresize(image22,4)+e2;
% ie1=imr1-image1;
% ie2=imr2-image2;
% subplot(251),imshow(image1);subplot(252),imshow(image11);subplot(253),imshow(e1);subplot(254),imshow(imr1);subplot(255),imshow(ie1);
% subplot(256),imshow(image2);subplot(257),imshow(image22);subplot(258),imshow(e2);subplot(259),imshow(imr2);subplot(2,5,10),imshow(ie2);