Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCv 3d缝合全景图_C++_Opencv_Image Stitching - Fatal编程技术网

C++ OpenCv 3d缝合全景图

C++ OpenCv 3d缝合全景图,c++,opencv,image-stitching,C++,Opencv,Image Stitching,我有7张来自gopro的图片(5个在钻机上的摄像头,一个在顶部,一个在底部,它们都是gopro摄像头)。我想将所有这些图像缝合在一起,创建一个3d全景图。我已经能够使用opencv stitching_detailed.cpp在Rig中缝合5幅图像。链接到文件: 但我不知道如何缝合顶部和底部(对我来说,现在底部并不是那么重要,但我必须做一些关于顶部的事情)。你知道怎么做吗?请让我知道我是否可以使用相同的缝合_detailed.cpp来缝合顶部 下面的链接包含我正在使用的图像。它还包含我在装备中

我有7张来自gopro的图片(5个在钻机上的摄像头,一个在顶部,一个在底部,它们都是gopro摄像头)。我想将所有这些图像缝合在一起,创建一个3d全景图。我已经能够使用opencv stitching_detailed.cpp在Rig中缝合5幅图像。链接到文件:

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

下面的链接包含我正在使用的图像。它还包含我在装备中缝合图像得到的结果


因此,首先您需要了解stitching_detailed.cpp是如何工作的。 1.使用SURF/ORB/SIFT等在每个图像中检测特征关键点。然后对每一对图像进行最佳特征匹配,计算单应矩阵,得到每一对图像的内联线数目

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


 BestOf2NearestMatcher matcher(try_cuda, match_conf);
 matcher(features, pairwise_matches);
  • 所有这些对都被划分成最大的组件,以获得最大的图像集,这些图像集属于全景图

  • 相机参数或每个图像是从上述获得的集合和扭曲和混合计算完成

  • 步骤1将为每一对找到单应性,并生成若干内联线。步骤2将删除所有置信因子(内联数)小于阈值的图像对。由于cam7 img具有较少的特征,并且几乎没有与任何其他图像重叠的区域,因此它将在步骤中被拒绝

    您可以在此链接中看到功能和mtaching(我已经使用了orbfeatures)

    我也没有改变图像的大小,但是我想缩小图像的大小一点(可能减半)会产生更多的特征点


    你能做的就是缩短你用框架缝合的时间间隔。要获得良好的效果,图像之间必须至少有40%的重叠区域。

    如果有足够的特征,此缝合代码将缝合所有图像(水平和垂直)。可能是顶部和底部的图像没有太多的重叠区域和需要缝合的功能。你能给我你正在使用的图像吗?我已经添加了我正在使用的图像的链接。实际上,我必须通过编程来完成这项工作。我必须实时将视频拼接在一起。这只是视频中的一帧。非常感谢您的详细回答。实际上我用PRO7 Bullet360拍摄了这些照片。链接:。有一件事我想问,如果我想降低这个阈值,做一些强制缝合,这样图像7就不会掉下来,有没有办法做到这一点?还有一件事你是说这种仪器在这种封闭的环境下不能工作?你可以改变阈值float match_conf=0.3f;和float confu thresh=1.f;但是它可能会产生一些错误,如果你知道每个摄像头的方向,那么你可以直接将摄像头的旋转矩阵输入到上面代码的摄像头。