全景拼接原理
全景图象是通过将普通照相机拍照到的边界部分重叠的图象进行拼接而创建的。可以利用图象重叠部分对应像素的相似性, 通过采用一种行之有效的拼接算法, 使得到的图象无缝平滑。
图像的拼接技术包括三大部分:特征点提取与匹配、图像配准、图像融合。
本文采用的是基于sift算法的全景图像拼接。
一、算法原理
- 拼接步骤:
(1)读入两张图片并分别提取SIFT特征
(2) 匹配两个图像之间的描述符
(3) 利用RANSAC算法筛选匹配点并计算变换矩阵
(4) 图像融合 - SIFT算法原理介绍之前有简单介绍过Sift算法介绍
- 单应性矩阵及图像仿射(Homegraph)原理上一篇文章有简单介绍过图像仿射原理
这里总结一下Homographies:
假设我们有两个相同平面对象的图像,它们之间有一些重叠(存在对应点)。让P1成为第一图像中的点的像素坐标[P1x,P1y,1 ],P2是第二图像中的点的像素坐标[P2X,P2Y,1 ]。我们将第一图像称为目的图像,第二图像称为源图像。单应性1H2是将第二图像中的每个像素坐标与第一图像中的像素坐标映射关系。
P1 = 1H2 * P2
获取对应点
可以使用特征点检测,如 SIFT,SURF,ORB等,这里,我们使用sift。 - 图像配准
图像配准是一种确定待拼接图像间的重叠区域以及重叠位置的技术,它是整个图像拼接的核心。本文采用的是基于特征点的图像配准方法,即通过匹配点对构建图像序列之间的变换矩阵,从而完成全景图像的拼接。
变换单应性矩阵H求解是图像配准的核心,其求解的算法流程如下。
1)检测每幅图像中特征点。
2)计算特征点之间的匹配。
3)计算图像间变换矩阵的初始值。
4)迭代精炼H变换矩阵。
5)引导匹配。用估计的H去定义对极线附近的搜索区域,进一步确定特征点的对应。
6)重复迭代4)和5)直到对应点的数目稳定为止。
设图像序列之间的变换为投影变换
可用4组最佳匹配计算出H矩阵的8 个自由度参数hi=( i=0,1,…,7),并以此作为初始值。
为了提高图像配准的精度,本文采用RANSAC算法对图像变换矩阵进行求解与精炼,达到了较好的图像拼接效果。
RANSAC算法的基本原理可通过上图来描述。
RANSAC算法的思想简单而巧妙:首先随机地选择两个点,这两个点确定了一条直线,并且称在这