图像拼接算法的基本原理

转自:http://blog.csdn.net/yuyin86/article/details/6690423


全景视频是一种利用360 度全景图象建立虚拟环境的新方法。全景图象是通过将普通照相机拍照到的边界部分重叠的图象进行拼接而创建的。可以利用图象重叠部分对应像素的相似性, 通过采用一种行之有效的拼接算法, 使得到的图象无缝平滑。


来自研学论坛 Walkfarer和SCQ的帖子:

http://bbs.matwav.com/post/view?bid=6&id=371051&sty=3&age=0&tpg=1&ppg=1#371051


图像拼接是计算机视觉中的重要分支,它是将两幅以上的具有部分重叠的图像进行无缝拼接从而得到较高分辨率或宽视角的图像。目前成形算法原理大致如下:
1、频率域:(不甚清楚)
     利用"相位相关法"完成两幅图像的平移估计(只能精确到像素级)。
2、空间域:
(1)基于特征的方法:找出特征点,进行匹配。
a.使用HARRIS角点,然后使用灰度相关加松弛匹配找到对应点,如果两幅图像重叠区域较大,且透视变形较小,可以考虑使用这种方法。

b.通过特征点的梯度方向等信息,确定一组最佳的特征匹配,利用这一组数据给出两幅图像间变换矩阵的估计初值,再利用递归算法找到最终的精确变换关系。在拍摄图片的相机的旋转与缩放不是很大的情况下可以实现较好效果。
(2)和基于光差的方法(方法精确但收敛慢)。应用最广泛的一类拼接算法是柱面与球面图像的拼接,经过球面与柱面变换后,问题就归结为确定每幅图像的平移量。 

以上是我阅读了一些文章总结出来的,贻笑大方了。希望各位修正或添加之。

*********csq************
我来补充吧.
1 频率域: 一般是用fourier的相位相关,可以估计出频移,旋转,缩放。
频移没什么好讨论的,比较简单, 估计缩放和旋转一般是变到极坐标系去做,无数的paper讨论这个问题,前面讨论“怎样判断两幅图像有没有重叠”的帖子,我给了一篇paper,今年ieee tran ip的。 还不错。频率域的有人做sub-pixel. 这个我也说过, university of centrl florida 的那个什么faroon (名字记不清了), 写了一篇这样的,但好像只能处理频移的sub-pixel. 我还发email问过他有没有处理旋转的sub-pixel. 他没有回。 ft.
2.空域: 
1 。楼主遗漏了基于intensity的方法,不过确实用的不多了。
2。 特征的方法:
看来最多的是 point-rgistration. 不过还是有做用边缘啊那些其他特征去拼的人 。 
下面我就介绍一下point发.
Point-registration: 
1.经典的harris point, 现在有不少修正版 ,因为harris 当时对参数的选择并没有给出很好的建议,所以参数选择比较烦,我以前就试过很多参数. 
参考文献:A Mathematical Comparison of Point Detectors
Evaluation of Interest Point Detectors
找到特征点那就要去匹配拉。
一般是先初步估计一下,剔出差太多的匹配对。 可以用intensity的各种方法,但是这就摆出一个问题: 光照。 很麻烦,两幅图的光照差很多的话,有可能根本弄不出来匹配的点,但你从图上明显可以看到很多对都是匹配的。这个等会讨论。
2.然后进一步估计匹配,RANSAC用的最多,也有其他的方法, 像paper: MLESAC- A new robust estimator with application to estimating image geometry.
估计出匹配对,然后就要算那个乱七八糟的矩阵。 又是很多方法可以来做。一般是各种优化算法像 LM之类的。
3.算出矩阵,然后把一个变到另外一个的坐标系,就是融合的问题了。咋个无缝拼接是个问题。 Szeliski的方法用的多,paper我忘了,等会那篇review里面可以查到。

没有考虑的问题:
1. 假设是perfect 的各种关系,像频移,旋转,缩放,仿射,实际上并不那么简单,实际数码照的片子关系很复杂。
2. 光照。刚才说了,大问题。在估计匹配点,矩阵,甚至最后融合都会引入不少麻烦。

SIFT 方法好,可以解决一些问题,

经典的一篇综述
Image alignment and stitching- A tutorial

http://hi.baidu.com/simonyuee/blog/item/24961f6dfaa543fa431694bd.html

猜你喜欢

转载自blog.csdn.net/yaningli/article/details/78552014