ORB-SLAM2同OpenMVS实现三维重建

ORB-SLAM2 位姿导出

Note:

为与OpenMVS进行对接本次进对ORB-SLAM2进行部分修改,使之可以为

OpenMVS提供稀疏点云、关键帧的位姿、内参,以及稀疏点云在各个View 中的可见性。

主要更改如下

.  Map文件下增添如下函数

 

public:

void Save(const string &filename,const cv::MatSize image_size);

void SaveMapPoint(ofstream &f, MapPoint* mp);

void SaveKeyFrame(ofstream &f, KeyFrame* kf); protected:

std::vector<int> KeyId;

.  System下增加:

void System::SaveMap(const string &filename,const

cv::MatSize image_size);

.  mono_tum.cpp或者orbslam的其他Examples中对

System::SaveMap(const string &filename,const cv::MatSize image_size)这个函数进行调用即可。

SLAM.SaveMap("../Examples/output/sfm.txt",im.size);

OpenMVS接受SLAM的数据格式

ORB-SLAM2

 

数据集地址:  https://vision.in.tum.de/data/datasets/rgbd-dataset/download#freiburg1_plant

ORB-SLAM2导出位姿验证

在与OpenMVS 进行对接之前,一定确保自己导出的信息是准确的,可以将 相机三位空间坐标点以及相机在空间中的位置保存成plyobj等三维格式, meshlab中进行查看,或者如果你用的rgb-d相机的话,同样可以将深度  图、 rgb图一同投影下来,在meshlab下进行查看

OPENMVS接口

为与SLAM进行对接,我们加入了read_pose.cpp read_pose.h这两个

c++文件,目的是对SLAM导出的位姿和稀疏点云进行读取,并对OpenMVS 进行初始化。

主要核心函数有

bool load_scene(string file,Scene &scene);

bool read_mvs_pose(string file,MVSPOSE &mvs_pose);

bool save_pointcloud_obj(string name, vector<POINT3F> points,int num_keyframes,RGB color)

InterfaceColMap接口理解

首先明确一点,我们SLAM的内容要如实的传入到Scene这个类中

首先将数据传入imgaes

然后将数据传入platforms

以及pointcloud

具体代码实现(节选)

// load and estimate a dense point-cloud

#define use_custom_pose #ifdef use_custom_pose

if(!load_scene(string(MAKE_PATH_SAFE(OPT::strInputFileNam e)),scene))

return EXIT_FAILURE;

#else

if

(!scene.Load(MAKE_PATH_SAFE(OPT::strInputFileName))) return EXIT_FAILURE;

#endif

三维重建过程

mesh重构 纹理贴图

  • 40
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江山如画,佳人北望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值