Opencv使用stitch实现图片拼接

来源:互联网 发布:ubuntu自带c 编译器么 编辑:程序博客网 时间:2024/05/19 14:19

这里是基于ORB来寻找特征点经行图像的匹配的原理来进行图像拼接的,具体步骤如下:

1、利用sift特征探测器来检测出两幅图片的sift特征点



2根据上一步提取到的特征点来提取特征向量,使用SiftDescriptorExtractor对完成特征向量提取的工作,通过他对关键点周围邻域内的像素分块进行梯度运算,得到128维的特征向量



3、进行特征向量临近匹配,找到两幅图之间相互匹配的特征点


匹配之后的结果如下图:(2张图片的)


4、在第一次匹配的基础上再进行筛选,算出匹配的特征向量之间的距离,然后只去向量距离小于2倍的最小距离的特征点


这样得到的结果为:


5、通过随机抽样一致RANSAC算法找出特征点之间的映射关系,求出单应矩阵H


6、判断两幅图在结果图中的左边还是右边,这里是根据特征点在图像的位置来判断的,求出图像上特征点的x坐标大于图像宽的一半的特征点数量与总的特征点数量的比值,比值大的就是在结果图的右边


7、把第6步算得的右图经过透视转换转换到结果图中,这里要使用单应矩阵H再把计算得到的左图放到结果图中:


部分拼接结果:

0 0