最初我看特征点匹配的东西源于三维重建,由于特征点匹配的不准确,导致两幅图像之间的位置关系计算不准确,从而使得最后生成的三维点云中有很多的噪声。看特征点匹配大概看了一个半月,把已有的除了最新的基于深度学习特征点匹配的方法都看了一个遍。后来三维重建没有再继续做下去,跟老师要了两周的时间想用特征点匹配试试图像拼接。
由于两周时间有点短,而且中间我的电脑还崩过三四天,最终也没有把图像拼接完全做通,我先把当前做好的记录下来,其余的再留个以后慢慢改善吧。
已做到的:多张有序图像之间的拼接、两幅图像交界处渐入渐出融合、图像的柱形投影;
未做到的:不同色调图像之间的拼接效果不理想、拼接处有虚影、最终图像的拉直。
好了,下面来简单介绍一下图像拼接的原理。
一、图像拼接原理
图像拼接在图像处理领域是一个比较成熟的方向了,目前都没有关于图像拼接的新论文出现了,他的主要组成分为两部分:(1)特征点匹配,确定两幅图像之间的位置关系;(2)把所有图像投影变换到同一坐标系,并完成对接与融合。下面来分别做简单的介绍。
1.1 特征点匹配
特征点匹配我就不多讲了,我的博文中有一个分类是讲比较经典的特征点匹配的方法的:特征点匹配 - lhanchao的博客
特征点匹配后,我们得到了两幅图像中相互匹配的特征点对,以及每个特征点对应的特征点描述符。然而我们得到特征点对中会有一部分是误匹配点,因此我们需要进行匹配点对的消除,一般我们使用的RANSAC去除误匹配点对,同样有博文介绍特征点匹配——使用基础矩阵、单应性矩阵的RANSAC算法去除误匹配点对,简单的来说,就是通过不断优化两幅图像之间的位置关系来验证特征点匹配点对是否正确。
从上面的描述中,我们可以发现一个很好的东西,就是我们用来去除误匹配的特征点对的矩阵,就是我们最终需要计算的两幅图像之间的位置关系,一石两鸟有没有~
注意,这里的矩阵指的是RANSAC博文中的单应性矩阵。我们在这里有个假设,即两幅图像之间是符合透视变换的,可以用如下方式表达: