当前位置:文档之家› 基于MATLAB的图像拼接技术

基于MATLAB的图像拼接技术

基于MATLAB的图像拼接技术
基于MATLAB的图像拼接技术

基于MATLAB的图像拼接技术实验报告

学院:数信学院

专业班级: 12级信息工程1班

姓名学号:

一、 实验名称:基于MATLAB 的图像拼接技术

二、 实验目的:利用图像拼接技术得到超宽视角的图像,用来虚拟实际场景。 三、 实验原理:

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

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

112(//)

00

1

(,)(,)M N j ux M vy N x y F u v f x y e M N

π---+===

?∑∑

其中,F (u ,v )是复变函数;u 、v 是频率变量,u=0,1,…,M-1,v=0,1,…,

N-1;x 、y 是空间或图像变量。

二维离散傅里叶逆变换(IDFT )为:

112(//)

0(,)(,)N M j ux M vy N y x f u v e

F x y π---+===∑∑ 其中,x=0,1,…,M-1;y=0,1,…,N-1。

设两幅图像1I 、2I 的重叠位置为(0x ,0y ),则图像1I 、2I 的互功率谱为:

00*

2()1212(,)(,)

(,)(,)

j x y I I e I I πξηξηξηξηξη-+?=?

其中,*为共轭符号,对上式两边进行傅里叶逆变换将在(0x ,0y )处产生一个 函数。因此,只要检测上式傅里叶逆变换结果最大值的位置,就可以获得两幅图像间的评议量(0x ,0y 。具体算法步骤如下: ①读入两幅图片1I 、2I (函数输入),并转换为灰度图像; ②分别对1I 、2I 做二维傅里叶变换,即: A=2fft (1I ) B=2fft (2I )

则通过A 、B 的简单的矩阵运算得到另一矩阵3C ,即: 3C =B*.conj (A )/norm (B*.conj (A ),1)

矩阵3C 的二维傅里叶逆变换C 在(0x ,0y )处取得最大,可通过遍历比较C (i ,j )大小即可找到该位置,并作为函数返回值。 四 实验程序 tic

x=[1 2;0 1];

a=imread('7.jpg'); %读取图片 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+siz e(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

五运行结

六 实验总结

1、图像拼接技术是数字图像处理技术的一个重要的研究分支,它是将一组相互间存在重叠部分的图像序列进行匹配对准经重采样融合后形成一幅包含各图像序列信息的、宽视角场景的、完整的、高清晰的新图像。通过图像拼接技术,可以剔除冗余信息,压缩信息存储量。

2、该实验通过读入两幅图片,并把其改成灰度图,然后分别对两幅图做二维傅里叶变换A=2fft (1I ) B=2fft (2I )则通过A 、B 的简单的矩阵运算得到另一矩阵C3,即:3C =B*.conj (A )/norm (B*.conj (A ),1)矩阵3C 的二维傅里叶逆变换C 在(0x ,0y )处取得最大,可通过遍历比较C (i ,j )大小即可找到该位置,并作为函数返回值。来实现图像的拼接。

3、在同组的学习中我们复习了傅里叶变换以及互功率谱的计算及应用。

4、随着计算机和图像处理技术的发展,图像拼接技术为得到超宽视角图像提供了很好的解决方案。它可将一系列有重叠边界的普通图像或视频图像进行无缝拼接,从而得到超宽视角图像。图像拼接技术的出现使采集图像的设备更普通化,利用普通的数码照相机即可得到满足要求的图像。

5、、通过这次的实验,增强了我们的团队团队合作精神,虽然在实验中我们遇到了不少困难,但是通过我们的努力,克服了困难,完成了实验,使我们更有信心面对更大的困难。

matlab的图像拼接程序(20210119152549)

mat lab的图像拼接程 序 -CAL-FENGHAI-(2020YEAR-YICAI) JINGBIAN ll=imread{,,);%6dTAEuODpAp¥dy2All%6D j u j A ll=double(ll); [hl wl dl]=size(ll);%TEOEdl±al2lldU±a>>0dl I2= imread(n);

I2=double(l2); [h2 w2 d2]=size(l2); %show input images and prompt for correspondences figure;subplot( 1,2,1); image(ll/255); axis image; hold on; title(*first input image'); [XI Yl]=ginput(2); %get two points from the usersubplot(l z2,2); image(l2/255); axis image; hold on; title('sec ond input image*); [X2 Y2]=ginput(2); %get two points from the user %estimate parameter vector(t); Z=[X2' Y2'; Y2'?X2'; HOOjOOll]1; xp=[Xl; Yl]; t=Z\xp; %solve the I in ear system a=t(l); %=s cos(alpha) b=t(2);%=s sin(alpha) tx=t(3); ty=t(4); % con struct transformation matrix(T) T=[a b tx;?b a ty; 0 0 1]; % warp incoming corners to determine the size of the output image(in to out) cp二T*[l 1 w2 w2; 1 h2 1 h2; 1 111]; Xpr=min([cp(l/:)/O]): max([cp(l/:)/wl]);%min x:maxx Ypr=min([cp(2/:)/0]): max([cp(2/:)/hl]); %min y: max y [Xp/Yp]=ndgrid(Xpr/ Ypr); [wp hp]=size(Xp); %=size(Yp) % do backwards transform (from out to in) X=T\[Xp(:) Yp(:) ones(wp*hp/l)]';%warp %re-sample pixel values with bilinear interpolation clear Ip; xl二reshape(X(b:)Mp,hp)‘; yl=reshape(X(2/:)/wp/hp)1; lp(:/:/l)=interp2(l2(:/:/l)/xl/ yl, '?bilinear*); %red Ip(:/:/2)=interp2(l2(:/:/2)/xl/ yl, '?bilinear1);%green lp(:z:/3)=interp2(l2(:/:/3)/xl/ yl, ^bilinear1);%blue % offset and copy original image into the warped image offset= -rounddmindcpfl/)^]) min([cp(2,:),0])]); lp(l+offset ⑵:hl+offset(2), 1+off set {1): wl+offset (1 )z:); doublefllflihl.liwl,:)); %show the result figure; image(lp/255); axis image; title('mosaic image'); ll=double(imread(n)); [hl wl dl]=size(ll);%TEOEdl±aPll6lJ±agl I2=double(imread(n)); [h2 w2 d2]=size(l2); %show input images and prompt for correspondences figure; subplot(l,2z l); image(ll/255); axis image; hold on; title('first input image'); [XI Yl]=ginput(2); %get two points from the user subplot(122); image(l2/255); axis image; hold on; title('sec ond input image1); [X2 Y2]=ginput(2); %get two points from the user %estimate parameter vector(t); Z=[X2' Y2'; Y2'-X2' ;1100;0011]'; xp=[Xl; Yl]; t=Z\xp; %solve the linear system %% a=t(l); %=s cos(alpha) b=t(2); %=s sin(alpha)

基于matlab的图像识别与匹配

基于matlab的图像识别与匹配 摘要 图像的识别与匹配是立体视觉的一个重要分支,该项技术被广泛应用在航空测绘,星球探测机器人导航以及三维重建等领域。 本文意在熟练运用图像的识别与匹配的方法,为此本文使用一个包装袋并对上面的数字进行识别与匹配。首先在包装袋上提取出来要用的数字,然后提取出该数字与包装袋上的特征点,用SIFT方法对两幅图进行识别与匹配,最终得到对应匹配数字的匹配点。仿真结果表明,该方法能够把给定数字与包装袋上的相同数字进行识别与匹配,得到了良好的实验结果,基本完成了识别与匹配的任务。

1 研究内容 图像识别中的模式识别是一种从大量信息和数据出发,利用计算机和数学推理的方法对形状、模式、曲线、数字、字符格式和图形自动完成识别、评价的过程。 图形辨别是图像识别技术的一个重要分支,图形辨别指通过对图形的图像采用特定算法,从而辨别图形或者数字,通过特征点检测,精确定位特征点,通过将模板与图形或数字匹配,根据匹配结果进行辨别。 2 研究意义 数字图像处理在各个领域都有着非常重要的应用,随着数字时代的到来,视频领域的数字化也必将到来,视频图像处理技术也将会发生日新月异的变化。在多媒体技术的各个领域中,视频处理技术占有非常重要的地位,被广泛的使用于农业,智能交通,汽车电子,网络多媒体通信,实时监控系统等诸多方面。因此,现今对技术领域的研究已日趋活跃和繁荣。而图像识别也同样有着更重要的作用。 3 设计原理 3.1 算法选择 Harris 角点检测器对于图像尺度变化非常敏感,这在很大程度上限制了它的应用范围。对于仅存在平移、旋转以及很小尺度变换的图像,基于Harris 特征点的方法都可以得到准确的配准结果,但是对于存在大尺度变换的图像,这一类方法将无法保证正确的配准和拼接。后来,研究人员相继提出了具有尺度不变性的特征点检测方法,具有仿射不变性的特征点检测方法,局部不变性的特征检测方法等大量的基于不变量技术的特征检测方法。 David.Lowe 于2004年在上述算法的基础上,总结了现有的基于不变量技术的特征检测方法,正式提出了一种基于尺度空间的,对图像平移、旋转、缩放、甚至仿射变换保持不变性的图像局部特征,以及基于该特征的描述符。并将这种方法命名为尺度不变特征变换(Scale Invariant Feature Transform),以下简称SIFT 算法。SIFT 算法首先在尺度空间进行特征检测,并确定特征点的位置和特征点所处的尺度,然后使用特征点邻域梯度的主方向作为该特征点的方向特征,以实现算子对尺度和方向的无关性。利用SIFT 算法从图像中提取出的特征可用于同一个物体或场景的可靠匹配,对图像尺度和旋转具有不变性,对光照变化、

利用MATLAB进行图像截取_拼接(灰色_彩色)

%灰色图像拼接 clc; clear; A=imread('C:\Documents and Settings\s35\桌面\新建文件夹\v1.jpg'); figure,imshow(A) A1=im2bw(A); A2=double(A1); se=strel('disk',20); A4=imdilate(A2,se); figure,imshow(A4) A5=double(A4); A6=not(A5); A7=double(A6); B=imread('C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Water lilies.jpg'); C=imread('C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Winter.jpg'); [m,n]=size(A4); B2=rgb2gray(B); B3=imresize(B2,[m,n]); B4=double(B3); C2=rgb2gray(C); C3=imresize(C2,[m,n]); C4=double(C3); D=A5.*B4; E=A7.*C4; F=uint8(D+E); figure,imshow(F) %彩色图像拼接 clc; clear; A=imread('C:\Documents and Settings\s35\桌面\新建文件夹\v1.jpg'); figure,imshow(A) A1=im2bw(A); A2=double(A1); se=strel('disk',20); A4=imdilate(A2,se); figure,imshow(A4)

图像拼接原理及方法

第一章绪论 1.1图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学、计算机视觉、图像处理和计算机图形学研究中的热点。图像拼接解决的问题一般式,通过对齐一系 列空间重叠的图像,构成一个无缝的、高清晰的图像,它具有比单个图像更高的分辨率和更大的视野。 早期的图像拼接研究一直用于照相绘图学,主要是对大量航拍或卫星的图像的整合。近年来随着图像拼接技术的研究和发展,它使基于图像的绘制( IBR )成为结合两个互补领域 ――计算机视觉和计算机图形学的坚决焦点,在计算机视觉领域中,图像拼接成为对可视化 场景描述(Visual Seene Representaions)的主要研究方法:在计算机形学中,现实世界的图像过去一直用于环境贴图,即合成静态的背景和增加合成物体真实感的贴图,图像拼接可以 使IBR从一系列真是图像中快速绘制具有真实感的新视图。 在军事领域网的夜视成像技术中,无论夜视微光还是红外成像设备都会由于摄像器材的限制而无法拍摄视野宽阔的图片,更不用说360度的环形图片了。但是在实际应用中,很 多时候需要将360度所拍摄的很多张图片合成一张图片,从而可以使观察者可以观察到周围的全部情况。使用图像拼接技术,在根据拍摄设备和周围景物的情况进行分析后,就可以将通过转动的拍摄器材拍摄的涵盖周围360度景物的多幅图像进行拼接,从而实时地得到 超大视角甚至是360度角的全景图像。这在红外预警中起到了很大的作用。 微小型履带式移动机器人项目中,单目视觉不能满足机器人的视觉导航需要,并且单目 视觉机器人的视野范围明显小于双目视觉机器人的视野。利用图像拼接技术,拼接机器人双 目采集的图像,可以增大机器人的视野,给机器人的视觉导航提供方便。在虚拟现实领域中,人们可以利用图像拼接技术来得到宽视角的图像或360度全景图像,用来虚拟实际场景。 这种基于全景图的虚拟现实系统,通过全景图的深度信息抽取,恢复场景的三维信息,进而建立三维模型。这个系统允许用户在虚拟环境中的一点作水平环视以及一定范围内的俯视和仰视,同时允许在环视的过程中动态地改变焦距。这样的全景图像相当于人站在原地环顾四 周时看到的情形。在医学图像处理方面,显微镜或超声波的视野较小,医师无法通过一幅图 像进行诊视,同时对于大目标图像的数据测量也需要把不完整的图像拼接为一个整体。所以把相邻的各幅图像拼接起来是实现远程数据测量和远程会诊的关键环节圆。在遥感技术领域中,利用图像拼接技术中的图像配准技术可以对来自同一区域的两幅或多幅图像进行比较,也可以利用图像拼接技术将遥感卫星拍摄到的有失真地面图像拼接成比较准确的完整图像,作为进一步研究的依据。 从以上方面可以看出,图像拼接技术的应用前景十分广阔,深入研究图像拼接技术有着很重 要的意义 1.2图像拼接算法的分类 图像拼接作为这些年来图像研究方面的重点之一,国内外研究人员也提出了很多拼接算 法。图像拼接的质量,主要依赖图像的配准程度,因此图像的配准是拼接算法的核心和关键。根据图像匹配方法的不同仁阔,一般可以将图像拼接算法分为以下两个类型: (1) 基于区域相关的拼接算法。 这是最为传统和最普遍的算法。基于区域的配准方法是从待拼接图像的灰度值出发,对 待配准图像中一块区域与参考图像中的相同尺寸的区域使用最小二乘法或者其它数学方法 计算其灰度值的差异,对此差异比较后来判断待拼接图像重叠区域的相似程度,由此得到待

图像拼接原理及方法

第一章绪论 1.1 图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学、计算机视觉、图像处理和计算机图形学研究中的热点。图像拼接解决的问题一般式,通过对齐一系列空间重叠的图像,构成一个无缝的、高清晰的图像,它具有比单个图像更高的分辨率和更大的视野。 早期的图像拼接研究一直用于照相绘图学,主要是对大量航拍或卫星的图像的整合。近年来随着图像拼接技术的研究和发展,它使基于图像的绘制(IBR)成为结合两个互补领域——计算机视觉和计算机图形学的坚决焦点,在计算机视觉领域中,图像拼接成为对可视化场景描述(Visual Scene Representaions)的主要研究方法:在计算机形学中,现实世界的图像过去一直用于环境贴图,即合成静态的背景和增加合成物体真实感的贴图,图像拼接可以使IBR从一系列真是图像中快速绘制具有真实感的新视图。 在军事领域网的夜视成像技术中,无论夜视微光还是红外成像设备都会由于摄像器材的限制而无法拍摄视野宽阔的图片,更不用说360 度的环形图片了。但是在实际应用中,很多时候需要将360 度所拍摄的很多张图片合成一张图片,从而可以使观察者可以观察到周围的全部情况。使用图像拼接技术,在根据拍摄设备和周围景物的情况进行分析后,就可以将通过转动的拍摄器材拍摄的涵盖周围360 度景物的多幅图像进行拼接,从而实时地得到超大视角甚至是360 度角的全景图像。这在红外预警中起到了很大的作用。 微小型履带式移动机器人项目中,单目视觉不能满足机器人的视觉导航需要,并且单目视觉机器人的视野范围明显小于双目视觉机器人的视野。利用图像拼接技术,拼接机器人双目采集的图像,可以增大机器人的视野,给机器人的视觉导航提供方便。在虚拟现实领域中,人们可以利用图像拼接技术来得到宽视角的图像或360 度全景图像,用来虚拟实际场景。这种基于全景图的虚拟现实系统,通过全景图的深度信息抽取,恢复场景的三维信息,进而建立三维模型。这个系统允许用户在虚拟环境中的一点作水平环视以及一定范围内的俯视和仰视,同时允许在环视的过程中动态地改变焦距。这样的全景图像相当于人站在原地环顾四周时看到的情形。在医学图像处理方面,显微镜或超声波的视野较小,医师无法通过一幅图像进行诊视,同时对于大目标图像的数据测量也需要把不完整的图像拼接为一个整体。所以把相邻的各幅图像拼接起来是实现远程数据测量和远程会诊的关键环节圆。在遥感技术领域中,利用图像拼接技术中的图像配准技术可以对来自同一区域的两幅或多幅图像进行比较,也可以利用图像拼接技术将遥感卫星拍摄到的有失真地面图像拼接成比较准确的完整图像,作为进一步研究的依据。 从以上方面可以看出,图像拼接技术的应用前景十分广阔,深入研究图像拼接技术有着很重要的意义 1.2图像拼接算法的分类 图像拼接作为这些年来图像研究方面的重点之一,国内外研究人员也提出了很多拼接算法。图像拼接的质量,主要依赖图像的配准程度,因此图像的配准是拼接算法的核心和关键。根据图像匹配方法的不同仁阔,一般可以将图像拼接算法分为以下两个类型:(1) 基于区域相关的拼接算法。 这是最为传统和最普遍的算法。基于区域的配准方法是从待拼接图像的灰度值出发,对

基于MATLAB的图像拼接技术

基于MATLAB的图像拼接技术 基于MATLAB的图像拼接技术实验报告 学院:数信学院 专业班级: 12级信息工程1班 姓名学号: 一、实验名称:基于MATLAB的图像拼接技术 二、实验目的:利用图像拼接技术得到超宽视角的图像,用来虚拟实际场景。 三、实验原理: 基于相位相关的图像拼接技术是一种基于频域的方法,通过求得图像在频 域上是相位相关特点来找到特征位置,从而进行图像拼接。其基本原理是 基于傅氏功率谱的相关技术。该方法仅利用互功率谱中的相位信息进行图 像配准,对图像间的亮度变化不敏感,而且所获得的相关峰尖突出,具有 一定的鲁棒性和较高的配准精度。 基于相位相关法进行图像拼接的基本原理如下:假设f(x,y)表示尺寸为MN的图像,该函数的二维离散傅里叶变换(DFT)为: , MN,,111,,,juxMvyN2(//) Fuvfxye,(,)(,),,MN,xy,,00 其中,F(u,v)是复变函数;u、v是频率变量,u=0,1,…,M-1,v=0,1,…,N-1;x、y是空间或图像变量。 二维离散傅里叶逆变换(IDFT)为: N,1M,1,,juxMvyN2(//),fuve(,) Fxy(,),,,y,0x,0 ,…,M-1;y=0,1,…,N-1。其中,x=0,1 设两幅图像、的重叠位置为(,),则图像、的互功率谱为:IIxyII112002 *II(,)(,),,,,,,,jxy,,,2()1200 ,eII(,)(,),,,,,12

其中,*为共轭符号,对上式两边进行傅里叶逆变换将在(x,y)处产生一00个函数。因此,只要检测上式傅里叶逆变换结果最大值的位置,就可以获得两xy幅图像间的评议量(,。具体算法步骤如下: 00 II?读入两幅图片、(函数输入),并转换为灰度图像; 12 II?分别对、做二维傅里叶变换,即: 12 fftIfftI A=() B=() 1222 C则通过A、B的简单的矩阵运算得到另一矩阵,即: 3 C =B*.conj(A)/norm(B*.conj(A),1) 3 矩阵的二维傅里叶逆变换C在(,)处取得最大,可通过遍历比较C(i,Cxy300 j)大小即可找到该位置,并作为函数返回值。 四实验程序 tic x=[1 2;0 1]; a=imread('7.jpg'); %读取图片 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]);

图像拼接算法及实现.doc

图像拼接算法及实现(一) 来源:中国论文下载中心 [ 09-06-03 16:36:00 ] 作者:陈挺编辑:studa090420 论文关键词:图像拼接图像配准图像融合全景图 论文摘要:图像拼接(image mosaic)技术是将一组相互间重叠部分的图像序列进行空间匹配对准,经重采样合成后形成一幅包含各图像序列信息的宽视角场景的、完整的、高清晰的新图像的技术。图像拼接在摄影测量学、计算机视觉、遥感图像处理、医学图像分析、计算机图形学等领域有着广泛的应用价值。一般来说,图像拼接的过程由图像获取,图像配准,图像合成三步骤组成,其中图像配准是整个图像拼接的基础。本文研究了两种图像配准算法:基于特征和基于变换域的图像配准算法。在基于特征的配准算法的基础上,提出一种稳健的基于特征点的配准算法。首先改进Harris角点检测算法,有效提高所提取特征点的速度和精度。然后利用相似测度NCC(normalized cross correlation——归一化互相关),通过用双向最大相关系数匹配的方法提取出初始特征点对,用随机采样法RANSAC(Random Sample Consensus)剔除伪特征点对,实现特征点对的精确匹配。最后用正确的特征点匹配对实现图像的配准。本文提出的算法适应性较强,在重复性纹理、旋转角度比较大等较难自动匹配场合下仍可以准确实现图像配准。 Abstract:Image mosaic is a technology that carries on the spatial matching to a series of image which are overlapped with each other, and finally builds a seamless and high quality image which has high resolution and big eyeshot. Image mosaic has widely applications in the fields of photogrammetry, computer vision, remote sensing image processing, medical image analysis, computer graphic and so on. 。In general, the process of image mosaic by the image acquisition, image registration, image synthesis of three steps, one of image registration are the basis of the entire image mosaic. In this paper, two image registration algorithm: Based on the characteristics and transform domain-based image registration algorithm. In feature-based registration algorithm based on a robust feature-based registration algorithm points. First of all, to improve the Harris corner detection algorithm, effectively improve the extraction of feature points of the speed and accuracy. And the use of a similar measure of NCC (normalized cross correlation - Normalized cross-correlation), through the largest correlation coefficient with two-way matching to extract the feature points out the initial right, using random sampling method RANSAC (Random Sample Consensus) excluding pseudo-feature points right, feature points on the implementation of the exact match. Finally with the correct feature point matching for image registration implementation. In this paper, the algorithm adapted, in the repetitive texture, such as relatively large rotation more difficult to automatically match occasions can still achieve an accurate image registration. Key words: image mosaic, image registration, image fusion, panorama 第一章绪论

图像拼接matlab

clc clear all % 读入图片 pic1=imread('lena1、jpg'); pic2=imread('lena2、jpg'); % Harris角点检测 points1=myHarris(pic1); points2=myHarris(pic2); % 画出Harris角点 figure(1) drawHarrisCorner(pic1,points1,pic2,points2); % 角点特征描述 des1=myHarrisCornerDescription(pic1,points1); des2=myHarrisCornerDescription(pic2,points2); % 角点粗匹配 matchs=myMatch(des1,des2); % 获取各自出匹配角点位置 matchedPoints1=points1(matchs(:,1),:); matchedPoints2=points2(matchs(:,2),:); % 粗匹配角点连线 figure(2) drawLinedCorner(pic1,matchedPoints1,pic2,matchedPoints2); % 角点精匹配 [newLoc1,newLoc2]=pointsSelect(matchedPoints1,matchedPoints2); % 精匹配角点连线 figure(3) drawLinedCorner(pic1,newLoc1,pic2,newLoc2); % 图像拼接 im=picMatched(pic1,newLoc1,pic2,newLoc2); % 显示拼接图像 figure(4) imshow(im); set(gcf,'Color','w'); function points=myHarris(pic) % 功能:寻找Harris角点 % 输入:RGB图像或gray图 % 输出:角点所在的行、纵的N×2矩阵 if length(size(pic))==3 pic=rgb2gray(pic); end pic=double(pic); hx=[-1 0 1]; Ix=filter2(hx,pic); hy=[-1;0;1];

图像拼接根据harris检测matlab代码

自定义函数都在下面 clc clear all % 读入图片 pic1=imread('lena1.jpg'); pic2=imread('lena2.jpg'); % Harris角点检测 points1=myHarris(pic1); points2=myHarris(pic2); % 画出Harris角点 figure(1) drawHarrisCorner(pic1,points1,pic2,points2); % 角点特征描述 des1=myHarrisCornerDescription(pic1,points1); des2=myHarrisCornerDescription(pic2,points2); % 角点粗匹配 matchs=myMatch(des1,des2); % 获取各自出匹配角点位置 matchedPoints1=points1(matchs(:,1),:); matchedPoints2=points2(matchs(:,2),:); % 粗匹配角点连线 figure(2)

drawLinedCorner(pic1,matchedPoints1,pic2,matchedPoints2); % 角点精匹配 [newLoc1,newLoc2]=pointsSelect(matchedPoints1,matchedPoints2); % 精匹配角点连线 figure(3) drawLinedCorner(pic1,newLoc1,pic2,newLoc2); % 图像拼接 im=picMatched(pic1,newLoc1,pic2,newLoc2); % 显示拼接图像 figure(4) imshow(im); set(gcf,'Color','w'); function points=myHarris(pic) % 功能:寻找Harris角点 % 输入:RGB图像或gray图 % 输出:角点所在的行、纵的N×2矩阵 if length(size(pic))==3 pic=rgb2gray(pic); end pic=double(pic); hx=[-1 0 1]; Ix=filter2(hx,pic);

MATLAB图像融合

一、实验原理 本实验对源图像分别进行Harr 小波变换,建立图像的小波塔形分解,然后对分解层进行融合,处理各分解层上的不同频域分量可以采用不同的融合算子进行融合处理,本实验采用统一的算法处理,得到融合后的小波金字塔,对融合后的小波金字塔进行小波逆变换,得到的重构图像为拼接图像 1、 Harr 小波变换 Harr 小波分解步骤: 步骤一:输入信号n S 有2n 个样本, 步骤二:将信号分成1,2,2,,0 2n n l n l a S b S l -===,一共12n -对,然后对每一对变换,获得均值1n S -和差值1n d -。,21,212n l n l n S S S +-+=,1,,21,2n l n l n l d S S -+=-反变换可以无损地从 1n S -和1n d -中恢复出原信号,1n S -作为信号的全局信息(低频成分) ,1n d -作为信号的细节信息(高频成分),全局信息和原信号比较相似(局部一致性),细节信息(差值比较小)可以很高效的进行表示。 步骤三:对1n S -实施同样的变换(求均值和差值),获得均值2n S -和差值2n d -,它们两各有22n -个样本值。 步骤四:重复上面的变换步骤,直到0S 中仅有一个元素为止。 2、图像拼接算法 本实验采用小波分解的图像处理方法,首先对图形进小波变换,然后采用分层比较法,对两幅图的一级分解的LL 层进行比较,从而获得准确的位置匹配,然后各层进行相应的位置衔接,得到拼接图像的一级小波分解图像,最后对分解图像进行重构,得到拼接后的图像。 步骤一:首先对两图进行Harr 小波一级分解,假设分解图像如下图。 图一的harr 小波分解 图二的harr 小波分解 步骤二:对一级分解LL 层进行位置匹配。首先求出两幅图的LL 图像梯度值,即图像灰度值的显著变化的地方,采用如下公式 21(1,)mag i j -=

matlab图片拼接代码

求matlab图像拼接程序 clear; I=imread('xingshi32.bmp'); if(isgray(I)==0) disp('请输入灰度图像,本程序用来处理128 *128的灰度图像!'); else if (size(I)~=[128,128]) disp('图像的大小不合程序要求!'); else H.color=[1 1 1]; %设置白的画布 figure(H);imshow(I); title('原图像'); zeroImage=repmat(uint8(0),[128 128]); figure(H); %为分裂合并后显示的图设置画布 meansImageHandle=imshow(zeroImage); title('块均值图像'); %%%%%设置分裂后图像的大小由于本图采用了128像素的图blockSize=[128 64 32 16 8 4 2]; %%设置一个S稀疏矩阵用于四叉树分解后存诸数据 S=uint8(128); S(128,128)=0; threshold=input('请输入分裂的阈值(0--1):');%阈值 threshold=round(255*threshold); M=128;dim=128; %%%%%%%%%%%%%%%%% 分裂主程序%%%%%%%%%%% while (dim>1) [M,N] = size(I); Sind = find(S == dim); numBlocks = length(Sind); if (numBlocks == 0) %已完成 break; end rows = (0:dim-1)'; cols = 0:M:(dim-1)*M; rows = rows(:,ones(1,dim)); cols = cols(ones(dim,1),:); ind = rows + cols; ind = ind(:);

图形拼接.matlab代码

第一问 PicName1='a.jpg'; % 要合并的图片1 PicName2='b.jpg'; % 要合并的图片2 PicOut='c.jpg'; %合并的结果 IV1=imread(PicName1); % 读入图片1 IV2=imread(PicName2); % 读入图片2 PicData=[IV1; IV2]; % 如果是纵向拼接用这个 PicData=[IV1 IV2]; % 如果是横向拼接用这个 imwrite(PicData, PicOut, 'Quality', 75); % 输出图形 I1=imread('picture1.jpg'); I2=imread('picture2.jpg'); I=[I1,I2]; imshow(I) for index = 1:50; Filename = strcat('E:\icon',num2str(index),'.jpg');%%根据自己图片格式改写正确的扩展名 function PointDetect(filename,number) f=imread(filename); figure,imshow(f); [width,height]=size(f); h=zeros(width,height); if number>width*height number=width*height; end df=im2double(f); w=[-1 -1 -1;-1 8 -1;-1 -1 -1]; g=imfilter(df,w); g=abs(g)./8; [data index]=sort(g(:)); T=data(width*height-number+1); for i=1:width for j=1:height if g(i,j)>=T h(i,j)=1; %h(i,j)=g(i,j); end end end figure,imshow(h)

图像拼接算法及实现(二).

图像拼接算法及实现(二) 3.3.2 特征点匹配法 比值匹配法利用图像特征较少,而且在图像发生小角度旋转的时候容易发生误匹配。基于特征点的匹配法可以很好的解决这类问题。特征点主要指图像中的明显点,如房屋角点、圆点等。用于点特征提取得算子称为有利算子或兴趣算子。自七十年代以来出现一系列各不相同、各有特色的兴趣算子,较知名的有Moravec算子、Hannah算子与Foistner等。 本文采用Moravec算子进行特征点提取: Moravec算子的基本思想是,以像素点的四个主要方向上最小灰度方差表示该像素点与邻近像素点的灰度变化情况,即像素点的兴趣值,然后在图像的局部选择具有最大的兴趣值得点(灰度变化明显得点)作为特征点,具体算法如下: (1)计算各像素点的兴趣值IV (interest value),例如计算像素点(c,r)的兴趣值,先在以像素点((cr)为中心的n n的影像窗口中(如图3.3.2所示的 5 5的窗口),计算四个主要方向相邻像元灰度差的平方和。 图3.3.2 Moravec 算子特征点提取示意图 V = V = V = V = 其中k=INT(n/2)。取其中最小者为像元((c,r)的兴趣值: IV(c,r)=V=min{ V , V , V , V } (2)根据给定的阂值,选择兴趣值大于该阐值的点作为特征点的候选点。设V 为事先设定好的闭值,如果V V ,则V为特征点的候选点。 阑值得选择应以候选点中包括需要的特征点,而又不含过多的非特征点。

(3)在候选点中选取局部极大值点作为需要的特征点。在一定大小的窗口内(可不同于兴趣值计算窗口),去掉所有不是最大兴趣值的候选点,只留下兴趣值最大者,该像素即为一个特征点。 在有了以上的特征点提取的基础上,基于特征点匹配算法主要步骤如下: (1)在参考图像T的重叠部分中选取4个区域,每个区域利用Moravec算子找出特征点。 (2)选取以特征点为中心的区域,本文大小选择7X7的区域,在搜索图S 中寻找最相似的匹配。因为有4个特征点,故有4个特征区域,找到相应的特征区域的匹配也有4块。 (3)利用这4组匹配的特征区域的中心点,也就是4对匹配的特征点,代入方程式(3-2-2)求解,所求的解即为两幅图像间的变换系数。 (3-2-2) 该算法的主要优点: (1)图像的特征信息得到了利用,能够有的放矢,不是在盲目的搜索。 (2)误匹配发生的概率小,因为利用了参考图像T包含特征点的特征区域来寻找相应匹配,因此在搜索图S中相应的特征区域容易确认。 该算法的主要缺点: (1)计算的代价高,计算量大。该算法需要计算出特征点以及特征点的匹配点,同时还要将所有4对特征点带入式3-2-2求解变换系数,计算量大。 3.4 本章小结 本章分析了现有的多种图像配准算法以及图像配准中的难点。 第四章图像融合技术 4.1 图像融合技术的基本概念 数字图像融合(Digital Image Fusion)是以图像为主要研究内容的数据融合技术,是把多个不同模式的图像传感器获得的同一场景的多幅图像或同一传感器在不同时刻获得的同一场景的多幅图像合成为一幅图像的过程。由于不同模式的图像传感器的成像机理不同,工作电磁波的波长不同,所以不同图像传感器获得的同一场景的多幅图像之间具有信息的冗余性和互补性,经图像融合技术得到的合成图像则可以更全面、更精确地描述所研究的对象。正是由于这一特点,图像融合技术现已广泛地应用于军事、遥感、计算机视觉、医学图像处理等领域中。

图像拼接原理及方法

图像拼接原理及方法 This model paper was revised by the Standardization Office on December 10, 2020

第一章绪论 图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学、计算机视觉、图像处理和计算机图形学研究中的热点。图像拼接解决的问题一般式,通过对齐一系列空间重叠的图像,构成一个无缝的、高清晰的图像,它具有比单个图像更高的分辨率和更大的视野。 早期的图像拼接研究一直用于照相绘图学,主要是对大量航拍或卫星的图像的整合。近年来随着图像拼接技术的研究和发展,它使基于图像的绘制(IBR)成为结合两个互补领域——计算机视觉和计算机图形学的坚决焦点,在计算机视觉领域中,图像拼接成为对可视化场景描述(Visual Scene Representaions)的主要研究方法:在计算机形学中,现实世界的图像过去一直用于环境贴图,即合成静态的背景和增加合成物体真实感的贴图,图像拼接可以使IBR从一系列真是图像中快速绘制具有真实感的新视图。 在军事领域网的夜视成像技术中,无论夜视微光还是红外成像设备都会由于摄像器材的限制而无法拍摄视野宽阔的图片,更不用说360 度的环形图片了。但是在实际应用中,很多时候需要将360 度所拍摄的很多张图片合成一张图片,从而可以使观察者可以观察到周围的全部情况。使用图像拼接技术,在根据拍摄设备和周围景物的情况进行分析后,就可以将通过转动的拍摄器材拍摄的涵盖周围360 度景物的多幅图像进行拼接,从而实时地得到超大视角甚至是360 度角的全景图像。这在红外预警中起到了很大的作用。 微小型履带式移动机器人项目中,单目视觉不能满足机器人的视觉导航需要,并且单目视觉机器人的视野范围明显小于双目视觉机器人的视野。利用图像拼接技术,拼接机器人双目采集的图像,可以增大机器人的视野,给机器人的视觉导航提供方便。在虚拟现实领域中,人们可以利用图像拼接技术来得到宽视角的图像或360 度全景图像,用来虚拟实际场景。这种基于全景图的虚拟现实系统,通过全景图的深度信息抽取,恢复场景的三维信息,进而建立三维模型。这个系统允许用户在虚拟环境中的一点作水平环视以及一定范围内的俯视和仰视,同时允许在环视的过程中动态地改变焦距。这样的全景图像相当于人站在原地环顾四周时看到的情形。在医学图像处理方面,显微镜或超声波的视野较小,医师无法通过一幅图像进行诊视,同时对于大目标图像的数据测量也需要把不完整的图像

(完整版)基于Matlab的图像融合研究设计

目录 摘要 (1) Abstract (1) 1、绪论 (2) 1.1课题开发背景 (2) 1.1.1图像融合的定义 (2) 1.1.2手动配准与图象融合 (2) 1.1.3图象融合研究的发展现状和研究热点 (3) 1.2课题设计要求 (4) 2、MATLAB程序设计 (5) 2.1MATLAB软件简介 (5) 2.2MATLAB软件窗口环境 (7) 2.3M语言编程 (8) 3、图像融合算法 (9) 3.1图象融合算法的层次分类 (9) 3.2图像融合规则 (10) 3.3图像融合方法 (11) 3.4图像融合步骤 (12) 4、各算法程序 (13) 4.1一般方法 (13) 4.2PCA算法程序 (14) 4.3金字塔(Pyramid)算法程序 (15) 4.4小波变换(DWT)算法程序 (18) 5、实验结果 (22) 6、图像融合的应用 (24) 7、总结 (25) 参考文献 (26)

摘要 数字图像融合是以图像为主要研究内容的数据融合技术,是把多个不同模式的图像传感器获得的同一场景的多幅图像或同一传感器在不同时刻获得的同一场景的多幅图像合成为一幅图像的过程。本文首先介绍了数字图像融合的定义、发展现状和研究热点,接着论述了图像融合的规则、方法和步骤。并给出了三种融合算法程序,即PCA算法、金字塔图像融合算法与基于小波变换的算法程序,在最后论述了图像融合技术在军事、医学图像和遥感测控中的应用。 关键词:图像融合小波变换Matlab Abstract Digital image fusion is the technology of data fusion mainly study the images is the different patterns of images of the same scene sensors to the same number of sensors or images acquired at different times the same scene for a number of synthetic images images process.The first introduced digital image integration definition,the current development and research hot,and then discussed the integration of images of the rules,methods and steps.Three integration algorithms and procedures given that the PCA algorithms,pyramid image integration algorithms and algorithms based on wavelets change procedures discussed in the final image integration technology in the military,medical imaging and remote sensing,monitoring and control applications. Keywords:Image fusion Wavelets change Matlab

相关主题
文本预览
相关文档 最新文档