C++ OpenCv 3d缝合全景图
我有7张来自gopro的图片(5个在钻机上的摄像头,一个在顶部,一个在底部,它们都是gopro摄像头)。我想将所有这些图像缝合在一起,创建一个3d全景图。我已经能够使用opencv stitching_detailed.cpp在Rig中缝合5幅图像。链接到文件: 但我不知道如何缝合顶部和底部(对我来说,现在底部并不是那么重要,但我必须做一些关于顶部的事情)。你知道怎么做吗?请让我知道我是否可以使用相同的缝合_detailed.cpp来缝合顶部 下面的链接包含我正在使用的图像。它还包含我在装备中缝合图像得到的结果C++ OpenCv 3d缝合全景图,c++,opencv,image-stitching,C++,Opencv,Image Stitching,我有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);
你能做的就是缩短你用框架缝合的时间间隔。要获得良好的效果,图像之间必须至少有40%的重叠区域。如果有足够的特征,此缝合代码将缝合所有图像(水平和垂直)。可能是顶部和底部的图像没有太多的重叠区域和需要缝合的功能。你能给我你正在使用的图像吗?我已经添加了我正在使用的图像的链接。实际上,我必须通过编程来完成这项工作。我必须实时将视频拼接在一起。这只是视频中的一帧。非常感谢您的详细回答。实际上我用PRO7 Bullet360拍摄了这些照片。链接:。有一件事我想问,如果我想降低这个阈值,做一些强制缝合,这样图像7就不会掉下来,有没有办法做到这一点?还有一件事你是说这种仪器在这种封闭的环境下不能工作?你可以改变阈值float match_conf=0.3f;和float confu thresh=1.f;但是它可能会产生一些错误,如果你知道每个摄像头的方向,那么你可以直接将摄像头的旋转矩阵输入到上面代码的摄像头。