APP下载

基于块匹配的全景图像拼接算法研究

2019-10-08李绽蕾陆思语

科技经济市场 2019年7期

李绽蕾 陆思语

摘 要:针对超宽视角的全景图像拍摄,采用普通相机获取的全景图像分辨率较低,本文采用基于SAD的块匹配算法实现两幅图像的拼接和融合。实验结果表明采用块匹配的全景图像拼接方法拼接精度较高、两幅图像的融合效果较好,能够得到满意的拼接图像。

关键词:图像拼接;块匹配;SAD算法;加权平均算法

0 引言

在日常生活中,使用普通的相机很难获取宽视野、高分辨率的图像。因为相机的分辨率有限,而拍摄的场景越大,得到的图像分辨率就越低。因此只能通过缩放相机镜头减小拍摄的视野,以换取高分辨率的场景图像。为了在不降低分辨率的情况下获取大视野的场景图片,可将普通照片进行无缝拼接,得到超宽视角的全景图像,实现场面宏大的景物拍摄。

图像拼接技术[1]就是把若干幅有重叠部分的图像合成一幅大视角宽幅面的图像,并且要求拼接后的图像最大程度地与原始图像接近,失真尽可能小,没有明显的拼接缝。如果两幅图片有相同的元素,那么这两幅图就可以进行相应的拼接。因此,图形拼接的关键是需要快速准确找到两幅不同图片的重叠部分[2],实现宽视角成像。其中,寻找重叠部分的方法有很多,比如像素查询、块匹配等。获取重叠部分后再进行图像重叠部分的融合,进而实现图像拼接。

全景图像的拼接技术应用十分广泛,研究并提出一种精确而快速的图像拼接算法具有重要的现实意义。现在研究领域最常用的方法主要有基于相位的方法、基于区域(块)的方法、基于特征点的方法等[3]。本文主要研究基于块匹配的全景图像的拼接算法,对同一场景的两张图片进行拼接,获取视野更宽泛的全景图像。

1 算法实现框架

本文所要研究的问题是通过对图像进行匹配与融合,实现同一场景的两张图片的全景拼接。首先对图像进行采集,因采集的图片会受环境因素影响而存在很多质量问题,若直接进行图像拼接,拼接结果会很不理想,因此需要对图像进行相关的预处理以提高图像的质量。利用SAD算法实现块匹配,利用加权平均法对图像进行融合,最终实现全景图像无裂缝、无鬼影的拼接。实现全景图像拼接的流程如图1所示。

2 图像的获取及处理

想要进行图像拼接,那么首先是要准备拼接的图像。图片采集的基本方法有以下几种:旋转式相机拍摄、手持式相机拍摄和平移式相机拍摄。

在图像采集过程中,因为光照,拍摄场景的问题,图片中可能存在一定的噪声,要想得到效果好的拼接图片,在拼接前要对图像进行去燥处理。图像去燥具体方法有:均值滤波器、自适应维纳滤波器、中值滤波器、形态学噪声滤波器、小波去燥[4]。

中值滤波器的响应是基于滤波器包围的像素的灰度值的中值,用滤波器包围的图像区域的灰度值代替某个像素点的滤波结果。这是一个非线性滤波器。

(1)一维中值滤波器

假设包围的某个点的一维数据是,将它们的大小进行从小到大的排序

那么这个点进行中值滤波的结果[5]可表示为:

(2)二维中值滤波器

对图像进行中值滤波是指对图像中的任意一点(x,y),以该点为中心的滤波窗口设为Sxy,再将Sxy中所有的像素点进行从小到大的排序,将排序处于中间点的值,作为该滤波的结果。

3 实验原理及结果

3.1 图像匹配

图像匹配是图像融合的关键,图像匹配的方法有很多,现研究的图像匹配技术有基于特征点的匹配和基于灰度的匹配[6]。其中本文利用的匹配算法是简单的SAD算法。SAD算法的一般步骤是:

⑴一个卷积核窗口,大小可以自己定义。

⑵选取左边图像的中点,选此覆盖像素点,计算出所覆盖的像素点的灰度值,根据图像的极限约束,算出极限内的灰度值。

⑶利用左边的灰度值减去右边的灰度值,再求取绝对值。

⑷按照定义的步长移动窗口。重复操作,直到超出范围,此时求得最小值,就是图像的最佳匹配点。

SAD算法公式[7]:

SAD局部匹配算法是目前块匹配中常用的算法,SAD算法通常是模板与图像中的像素进行匹配,计算图像中灰度值的相似性,这里的模板也称为窗口。

3.2 消除误匹配

虽然块匹配效果很好,但是也可能还会有一些误匹配对,以至于影响后续的效果。因此,为了获取精准的匹配对,本文采用重叠区域等方法来消除误匹配。其基本原理是:两个具有重叠部分的匹配图像,其长度相等,可以根据这个条件来消除误匹配。要运用此方法,第一步是计算重叠区域的长度,如下图所示:

假设上面两幅图为待匹配图像,其中阴影部分就是两幅图片的重叠部分,上面的五点是提取出来的特征点。根据块匹配可以将点1和点3、点2和点4进行匹配,但是有时其他的组合也适合,就产生了误匹配。

设重叠部分的长度是w,由图可知:

所以可以用上式来计算,通过相等关系确定结果。比如,它的值与w的值不相等,所以可以将这个点去除,这样的计算效果比较好,匹配精度高。

3.3 图像融合

加权平均值法[8,9]也称作渐入渐出法,它能避免明显带状部分的出现,所以它可以说是直接平均法的改进。其基本思想是,重叠部分是第一幅图和第二幅图相交的地方,拼接图像的像素是原图像的像素加权,加权强度与像素点到原图像的距离成正比。在一维情况下,拼接图像的像素,可以使用公式表示为:

式中α是加权系数,设x的最小值是重叠部分的起始位置,x是重叠部分的终止位置,α可以表示为:

3.4 实验结果

本文使用matlab设计了GUI界面显示图像拼接过程的操作结果[10]。运行时导入文件夹,显示要拼接的两个图像,再进行图像的灰度拼接,实现过程如图4所示。

图4中(1)、(2)为待拼接的两幅图像,(3)为拼接后得到的灰度图像。由拼接结果可以得出:两幅待拼接图像都可以进行准确无误的拼接,没有差错、没有鬼影与裂缝,拼接的图像精度很高,结果显示这种图像拼接算法是很有效的。

4 结论

本文通过对图像拼接原理,包括图像预处理、图像匹配及图像融合的算法和原理进行研究,实现了全景图像的拼接设计与实现。对于手持相机拍摄的图片,本文先对图片进行了一系列的预处理,最终实现了图片的拼接,拼接结果显示本文所研究的全景图像拼接算法是很有效的,拼接的图像精度很高,且拼接图片能够适应光照和拍摄方式的变化。

参考文献:

[1]江铁,朱桂斌,孙奥.全景图像拼接技术研究现状综述[J].重庆工商大学学报,2012.

[2]刘衍琦,詹福宇.MATLAB图像与视频处理实用案例详解[M].电子工业出版社,2015.

[3]赵小川.现代数字图像处理技术提高及应用案例详解[M].北京航空航天大学出版社,2012.

[4]陈月.基于SIFT特征检测与匹配的快速圖像拼接方法研究[D].吉林大学,2017.

[5]周品,李晓东.MATLAB数字图像处理[M].清华大学出版社,2012.

[6]万年红,王雪蓉.基于边缘特征点的全景图像拼接算法[J].温州大学自然学报,2016.

[7]岳陈平,孟丽娅.基于SAD算法的立体匹配的实验[J].微型机与应用,2013.

[8]胡社教,江苹,陈宗海.基于序列图像的全景图像拼接[J].合肥工业大学学报,2003.

[9]文伟东,张明.基于SIFI算法的全景图像拼接技术研究[J].计算机系统应用,2017.

[10]俞颖.基于MATLAB的图像拼接算法实现研究[J].软件导刊,2016,15(6).