您的位置:首页 > 新闻 > 会展 > 杭州网站建设前三_个人主页制作_竞价外包托管费用_企业品牌推广方案

杭州网站建设前三_个人主页制作_竞价外包托管费用_企业品牌推广方案

2025/6/6 21:25:54 来源:https://blog.csdn.net/2401_84462152/article/details/143448947  浏览:    关键词:杭州网站建设前三_个人主页制作_竞价外包托管费用_企业品牌推广方案
杭州网站建设前三_个人主页制作_竞价外包托管费用_企业品牌推广方案

  • 实验名称:基于MATLAB的图像拼接技术
  • 实验目的:利用图像拼接技术得到超宽视角的图像,用来虚拟实际场景。
  • 实验原理:

基于相位相关的图像拼接技术是一种基于频域的方法,通过求得图像在频域上是相位相关特点来找到特征位置,从而进行图像拼接。其基本原理是基于傅氏功率谱的相关技术。该方法仅利用互功率谱中的相位信息进行图像配准,对图像间的亮度变化不敏感,而且所获得的相关峰尖突出,具有一定的鲁棒性和较高的配准精度。

      基于相位相关法进行图像拼接的基本原理如下:假设f(x,y)表示尺寸      为M*N的图像,该函数的二维离散傅里叶变换(DFT)为:

b=imread('8.jpg');

figure

imshow(a);

figure

imshow(b);

imwrite(b,'160.jpg');

IMG={a,b};                                            %将图片存为元胞结构

num=size(IMG,2);                                      %计算图片个数

move_ht=0;                                           %累计平移量初值

move_wd=0;                    

for count=1:num-1

  input1=IMG{count};                                  %读取图象

  input11=imresize(rgb2gray(input1),[300,200]);                             %将图象转为灰度图像

  input2=IMG{count+1};

 input12=imresize(rgb2gray(input2),[300,200]);

 F1=fft2(double(input11));                                          %二维傅里叶变换

F2=fft2(double(input12));

pdm=exp(1i*(angle(F1)-angle(F2)));                           %求互功率谱

cps=real(ifft2(pdm));       %傅里叶反变换,取冲激函数的实部

[i1,j1]=find(cps==max(max(cps)));    %需找峰值点

HtTrans=i1-1;                   %得到平移量

WdTrans=j1-1;

        if(i1>size(input2,1)/2)

           HtTrans=HtTrans-size(cps,1);

        end

        if(j1>size(input2,2)/2)

           WdTrans=WdTrans-size(cps,2);

        end

   move_ht=HtTrans;           %最终平移量

move_wd=WdTrans;

ht=move_ht;wd=move_wd;

move_ht=move_ht+ht;                                 %计算累计平移量

  move_wd=move_wd+wd;

  if count==1                                         %拼接图像

  coimage=my_move(input11,input12,move_ht,move_wd);

  else

  coimage=my_move(coimage,imput12,move_ht,move_wd);

  end

end

coimage1=coimage(15:size(coimage,1)-12,:);                  %切割图像

figure

imshow(uint8(coimage));

toc

time=toc

imwrite(uint8(coimage),'161.jpg');

function coimage=my_move(input1,input2,move_ht,move_wd)

%根据平移量拼接图像

total_ht=max(size(input1,1),(abs(move_ht)+size(input2,1)));

total_wd=max(size(input1,2),(abs(move_wd)+size(input2,2)));

combImage=zeros(total_ht,total_wd);    %按照总大小建立矩阵

regimg1=zeros(total_ht,total_wd);       %配准模板1

regimg2=zeros(total_ht,total_wd);       %配准模板2

%根据平移量选择配准方式即选择拼接图像的位置

if((move_ht>=0)&(move_wd>=0))

regimg1(1:size(input1,1),1:size(input1,2))=input1;

regimg2((1+move_ht):(move_ht+size(input2,1)),(1+move_wd):(move_wd+size(input2,2)))=input2;

elseif((move_ht<0)&(move_wd<0))

regimg2(1:size(input2,1),1:size(input2,2))=input2;

regimg1((1+abs(move_ht)):(abs(move_ht)+size(input1,1)),(1+abs(move_wd)):(abs(move_wd)+size(input1,2)))=input1;

elseif((move_ht>=0)&(move_wd<0))

regimg2((move_ht+1):(move_ht+size(input2,1)),1:size(input2,2))=input2;

regimg1(1:size(input1,1),(abs(move_wd)+1):(abs(move_wd)+size(input1,2)))=input1;

elseif((move_ht<0)&(move_wd>=0))

regimg1((abs(move_ht)+1):(abs(move_ht)+size(input1,1)),1:size(input1,2))=input1;

regimg2(1:size(input2,1),(move_wd+1):(move_wd+size(input2,2)))=input2;

end

if sum(sum(regimg1==0))>sum(sum(regimg2==0)) %选择零点较多的配准图像为拼接图像

plant=regimg1;  bleed=regimg2;

else

plant=regimg2;  bleed=regimg1;

end

combImage=plant;      %得到拼接图像

for p=1:total_ht

for q=1:total_wd

if(combImage(p,q)==0)

combImage(p,q)=bleed(p,q);  %将拼接图像的零点用另一幅图覆盖

end

end

end

%%

function [move_ht,move_wd]=my_trans(input1,input2)           %计算两幅图像平移量

F1=fft2(input1);                                          %二维傅里叶变换

F2=fft2(input2);

pdm=exp(1i*(angle(F1)-angle(F2)));                           %求互功率谱

cps=real(ifft2(pdm));       %傅里叶反变换,取冲激函数的实部

[i1,j1]=find(cps==max(max(cps)));    %需找峰值点

HtTrans=i1-1;                   %得到平移量

WdTrans=j1-1;

        if(i1>size(input2,1)/2)

           HtTrans=HtTrans-size(cps,1);

        end

        if(j1>size(input2,2)/2)

           WdTrans=WdTrans-size(cps,2);

        end

   move_ht=HtTrans;           %最终平移量

move_wd=WdTrans;

end

五 运行结果

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com