OpenCV常用图像拼接方法(一):直接拼接(硬拼)
OpenCV常用图像拼接方法(二):基于模板匹配拼接
OpenCV常用图像拼接方法(三):基于特征匹配拼接
OpenCV常用图像拼接方法(四):基于Stitcher类拼接
本篇文章是Stitcher类的扩展介绍,通过例程stitching_detailed.cpp的使用和参数介绍,帮助大家了解Stitcher类拼接的具体步骤和方法,先看看其内部的流程结构图(如下):
stitching_detailed.cpp目录如下,可以在自己安装的OpenCV目录下找到,笔者这里使用的OpenCV4.4版本,stitching_detailed.cpp具体源码如下目录,由于代码较多,这里不贴出来,大家找到位置自行查阅。
stitching_detail 程序运行流程
命令行调用程序,输入源图像以及程序的参数
特征点检测,判断是使用 surf 还是 orb,默认是 surf
对图像的特征点进行匹配,使用最近邻和次近邻方法,将两个最优的匹配的置信度 保存下来
对图像进行排序以及将置信度高的图像保存到同一个集合中,删除置信度比较低的图像间的匹配,得到能正确匹配的图像序列。这样将置信度高于门限的所有匹配合并到一个集合中
对所有图像进行相机参数粗略估计,然后求出旋转矩阵
使用光束平均法进一步精准的估计出旋转矩阵
波形校正,水平或者垂直
拼接
融合,多频段融合,光照补偿
stitching_detail 程序接口介绍
img1 img2 img3 输入图像
--preview 以预览模式运行程序