您的当前位置:首页正文

基于模板匹配的全景图像拼接

2020-01-21 来源:意榕旅游网
104

福建电脑2008年第4期

基于模板匹配的全景图像拼接

诚1,李

琳2

(1.湖北美术学院公共课部湖北武汉4300612.武汉科技大学计算机学院湖北武汉430061)

摘要】【:图像拼接在制作全景图中具有重要的作用。本文提出了一种很健壮的区域模板,它采用Moravec算子定位出特征物体区域,并在次区域上构建基准模板,有效地提高了匹配的可靠性。在模板匹配中采用加权相似性度量的方法,该方法提高了相似性度量的可靠性。另外,通过采用一种融合的拼接算法,得到了较平滑的全景图像。试验结果证实了算法的有效性。

关键词】【:全景图;图像拼接;Moravec算子;特征模板

1.引言

相邻图像的配准及拼接是全景图生成技术的关键,有关图

像配准技术的研究至今已有很长的历史,其主要的方法有以下

本两种:基于两幅图像的亮度差最小的方法和基于特征的方法。

文采用基于特征模板匹配特征点的拼接方法。该方法允许待拼接的图像有一定的倾斜和变形,克服了获取图像时轴心必须一致的问题,同时允许相邻图像之间有一定色差。试验证明采用该方法进行全景图拼接有较好的效果。

全景图的拼接主要包括以下4个步骤[1]:图像的预拼接,即确定两幅相邻图像重合的较精确位置,为特征点的搜索奠定基础。特征点的提取,即在基本重合位置确定后,找到待匹配的特征点。图像矩阵变换及拼接,即根据匹配点建立图像的变换矩阵并实现图像的拼接。最后是图像的平滑处理。2.基于特征模板匹配的图像拼接2.1基本原理

对于待拼接的两幅图像,在第二幅图像的左侧选取一定大小的模板矩阵(一般为5×5到21×21个像素),在第一幅图的右侧搜索找到与其相关性最大的模板矩阵,然后计算出两幅图像重叠的位置。通过坐标映射,最终实现拼接。2.2Moravec选取特征模板

采用Moravec算子进行特征区域提取的依据是对于一个模板窗口计算其X方向、Y方向及正负45度方向的最小灰度方差值,并与预先设定的阈值进行比较。对于彩色图像可以采用将图像转化为灰度图来处理。在模板窗口选择时可以采用5×5到

窗口越大,抗噪声能力越强同时运算量也越大。本文选用21×21。

7×7窗口。

理想情况下一定有一块子图Si,j和T一致,则T和Si,j之差为

零。但由于光照条件、器件光电噪声等因素影响,二者之差不可能为零。可以用最小平方误差D(i,j)来恒量T和Si,j的相似程度:

公式(2)

展开公式(2)得:

公式(3)

公式(3)中第一项是子图像Si,j的能量,它随(i,j)缓慢变化;第三项表示模板的总能量,一旦模板确定后就是一个常量;第二项是子图像Si,j和模板T的互相关系,随(i,j)变化而变化,当二者配准后此项取值最大。因此,可以用下面的归一化后相关函数R(i,j)做相似性测度。

公式(4)

根据施瓦兹不等式可知0<R(i,j)<1,模板在(M-X+1)×(N-Y+1)个位置上移动一遍后所得最大R(i,j)处的(i,j)就是最佳匹配点,这就是用最大相似性准则来进行模板匹配的基本原理[2]。2.4图像的平滑

得到两幅具有重叠区域图像的最佳配准点后,进行拼接的方法主要有三种[3]:①重叠区域图像数据的拼接时只使用一次。②重叠区域图像数据在拼接时简单取平均。③重叠区域图像数据在进行数据融合时采用淡入淡出的思想,使拼接后的图像过渡区平滑自然。图3为采用像素值直接平均方法拼接后的图像:

公式(1)

公式(1)中g(i,j)为窗口内图像坐标(i,j)的像素值,(m,n)为窗

口中心点处的坐标,i=m-3,…,m+3;j=n-3,…,n+3若!值大于预先设定的阈值,即该区域可跟踪,则得到特征模板。2.3模板相关性的计算

如图1所示,设两幅图像A和B具有水平方向的重叠区域(阴影部分),其中图像B中有一模板图像块T,图像A中阴影部分为搜索区域S,设模板T叠放在搜索区域S上平移,模板覆盖下的那块搜索图叫作子图Si,j,其中(i,j)为子图Si,j的左上角像素的坐标,若S的大小为M×N,T的大小为X×Y,则i,j的取值范围分别为:1<i<M-X+1,1<j<N-Y+1。

图2待拼接的两幅图像图3像素值直接平均拼接得到的图像

图4采用渐变因子方法拼接得到的图像

(a)图像A(b)图像B

图1匹配模型图

通过观察不难发现直接拼接后的彩色图像出现比较明显的边界或颜色偏差,使人感觉上难以接受。本文中采用了最后一种方法,即重叠区域图像采用图像融合方法。在得到最佳匹配点后,两幅图像的水平重叠距离L就被确定。根据L自动计算左幅图像的渐变因子d(i),d(i)=i/L,(i为离重叠区域的距离)。右幅图像的渐变因子为1-d(i)。设左右图像的重叠部分的像素值分别为c1和c2,则拼接后图像的像素值可表示为c2×d(i)+c1×(1-d

2008年第4期福建电脑

105

(i))。通过该方法,左幅图像就逐渐地过渡到右幅图像,实现了左右幅图像的平滑连接。图4为该方法拼接后得到的图像。

不难发现,与直接拼接得到的图像图3比较,该方法得到的

图像在边界处彩色过渡平滑自然,有较好的拼接效果。

复采用前一部分介绍的拼接方法,可以将这10张图像拼接成一幅完整的全景图(如图6所示)。

光学镜头的几何畸变对拼接有一定的影响。但实践证明,这种影响可以忽略不计。此外,由于拍摄时相机的水平位置不能完全保证,且每次连续拼接时两幅图像的重叠部分距离值不为定值,该算法仍能较准确地进行拼接,说明该算法具有较好的抗干扰性。当然,该算法也有一定的局限性,由于没有进行图像的校正,拼接得到的全景图在拼接处有一定的失真。

图6拼接得到的全景图

4.小结

本文基于Windows2003环境,采用.net的VisualC++实现了图像的拼接以及全景漫游,底层图形绘制及操作通过调用.net的Gdiplus图形库。拼接使用的图像可直接由普通数码照相机进行简单的360度旋转拍摄得到。图像可自动拼接成较好的全景图,且可连续、平滑地对场景进行全景显示。在进一步的工作中,将通过采用图像校正方法,减少图形拼接后的失真。参考文献:

1.漆驰,刘强.摄像机图像序列的全景图拼接.计算机辅助设计与图形学学报,2001,12(5):15~17

2.何斌,马天予,王运坚.VisualC++数字图像处理(第二版).人民邮电大学出版社,2002.12ISBN7-115-10955-9

3.钟力等.全景视频的信息组织和实现方法.小型微型计算机系统,1996,12.

图5待拼接的图像

3.拼接实例及分析

通过普通数码相机进行连续360度的旋转拍摄,可以得到两两之间有一定重叠的10张连续图像(如图5所示)。通过反

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(上接第120页)

流控无.用flashprg将Bootloader烧写到FLASH.复位目标板,在目标板输入命令appprog,在Windows运行tftp-i192.168.111.32putd:\image.rom就可以把uClinnux移植到开发板.输入"run10000",uClinnux就启动起来了。

(2)设置PC机上的共享目录执行vi/etc/exports,在里面添加一行:/s3c44b0x-rw默认为读写权限,如果准备以只读方式输出,则改为:/s3c44b0x-ro.

(3)执行/etc/rc.d/init.d/nfsrestart重启nfs服务.(4)#exportfs-a4.2客户机设置

#mount192.168.111.32:/s3c44b0x/tmp

开发板和PC机的设置都已经基本完成.在客户机/tmp目录就可以看到主机s3c44b0x目录里面的文件。以后调试程序只需要把编译好的程序放到s3c44b0x的目录下面就可以了,开发板

不再需要烧写。总结5、

本文采用了三星公司的S3C44B0X的32位处理器在Linux环境下构建了嵌入式开发平台,并在嵌入式操作系统上挂载JSS2和NFS。减少了传统嵌入式平台软件庞大,对系统配置要求过高,执行效率差等弊端,是一种简洁高效的开发环境环境。参考文献:

1.刘峰等Linux环境下嵌入式组态软件中图形组态的设计与实现[J]微计算机信息2006年17-051期

2.邹思轶.Linux嵌入式设计与应用[M].北京:清华大学出版社,2002.3.TavisBarr,NicolaiLangfeldt,SethVidal,TomMcNeal.LinuxNFS-HOWTO,2002

4.PatriceKADIONIK.HowtouseMTD/JFFS2underuClinnux.20035.马忠梅等.ARM&LIinux嵌入式教程,北京航空航天大学出版社2004.1

图2uClinnux启动界面

4.构建网络文件系统(NFS)

NFS就是NetworkFileSystem的缩写,最早是由Sun所发展出来的.它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此共享文件.其类似于Windows下的网络邻居,这样的话目标板和主机可以通过NFS进行通信。PC机Linux的IP:192.168.111.100,开发板的IP:192.168.111.32,只要确保二者的IP在同一网段即可。4.1PC机设置

首先,我们必须开启PC机的NFS服务,具体设置如下:

(1)在LINUX命令符下运行setup,在systemservices里面选中nfs服务,然后保存退出.

因篇幅问题不能全部显示,请点此查看更多更全内容