OpenCv 3d拼接全景
OpenCv 3d Stitching Panorama
我有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%的重叠区域
- 是否可以在C++中拼接缓冲区,零拷贝?
- 拼接图像无法检测常见特征点
- 我想在C++中用 openCV 拼接多个视频
- C++11 std::列出拼接后的迭代器失效
- C++:在 cin 重载中拼接字符串
- 拼接结构
- iOS 上的拼接全景崩溃与 cvflann::anyimpl::bad_any_cast
- 媒体基础全景(等距柱状投影)视频播放C++
- 在数据拼接 C++ 时输出成员变量
- Opencv 拼接多个图像
- OpenCv中实时视频流的图像拼接
- C语言中的OpenCV拼接器例程,如何获得像素变换
- 在屏幕上拼接的字符之间创建空格 - SDL
- OpenCV 拼接,C++ - 未处理的异常
- OpenCV将浮点数据馈送到图像拼接过程中
- 矢量<矢量>ROI的图像拼接使用<Rect>
- (开放式简历拼接)如何使用OpenCV Stitcher类获得更好的性能
- 从字节数组拼接长/空头的更好方法
- 拼接全景图像
- OpenCv 3d拼接全景