OpenCv 3d拼接全景

OpenCv 3d Stitching Panorama

本文关键字:全景 拼接 3d OpenCv      更新时间:2023-10-16

我有7个来自gopro的图像(5个相机在rig和一个顶部和一个底部,他们都是gopro相机)。我想把所有这些图像拼接在一起,形成一个3d全景图。我已经能够通过使用opencv stitching_detailed.cpp在Rig中缝合5张图像。链接到文件:

https://raw.githubusercontent.com/opencv/opencv/master/samples/cpp/stitching_detailed.cpp

但我不确定如何缝合顶部和底部(对我来说,现在底部不是那么重要,但我必须做一些关于顶部)。知道怎么做吗?请让我知道我是否可以使用相同的stitching_detail .cpp来缝合顶部。

以下链接包含我正在使用的图像。它还包含了我在rig中拼接图像得到的结果。

https://drive.google.com/folderview?id=0B_Bl8s2ePunQcnBaM3A4WDlDcXM& usp =分享

所以首先你需要了解stitching_detail .cpp是如何工作的。1. 使用SURF/ORB/SIFT等方法在每张图像中检测特征关键点。然后对每对图像寻找最佳特征匹配,计算单应性矩阵,得到每对图像的内层数

(*finder)(img, features[i]); 

 BestOf2NearestMatcher matcher(try_cuda, match_conf);
 matcher(features, pairwise_matches);
  • 所有这些对都被传递到leaveBiggestComponent中,以获得属于全景的最大图像集。

  • 相机参数或每张图像从上面得到的集合计算,并进行扭曲和混合。

  • 步骤1将为每对查找单应性并生成若干个inlier。步骤2将删除所有置信因子(内层数)小于阈值的图像对。由于cam7图像的特征很少,几乎没有与其他图像重叠的区域,因此它将在leavebiggestcomponent步骤中被拒绝。

    你可以在这个链接中看到功能和教学(我使用的是orbfeatures)

    https://drive.google.com/open?id=0B2wDitsftUG9QnhCWFIybENkbDA

    我也没有改变图像大小,但我猜减少图像大小一点(一半可能)将产生更多的特征点

    你所能做的就是缩短拍摄帧进行拼接的时间间隔。为了获得良好的效果,图像之间必须至少有40%的重叠区域