orbslam2运行时为什么map viewer窗口不显示任何点云之类的。
1、在D:\ORBSLAM3\orbslam3-windows
文件夹中,新建build
空文件夹,如图所示:
2、对orbslam3-windows
进行cmake
操作,如图所示:
这时后要注意,在Configure
执行过程中,会报如下错误:Error in configuration process, project likes may be invalid
解决方法:
打开orbslam3-windows
安装文件夹下的CMakeLists.txt
文件(例如我的是在:D:\ORBSLAM3\orbslam3-windows\
路径下)
修改CMakeLists.txt
文件(修改内容类似于编译DBOW2
时的修改):
<1> 第一处修改:
在CMakeLists.txt
文件中添加如下代码:
set(OpenCV_DIR D:/ORBSLAM3/opencv-4.1.2/build)
注意:我的修改是以上这样的,如果你的opencv-4.1.2
的路径与我的不同,则请以你的路径为准!
<2> 第二处修改:
再次configure
就不会报错了:
接着,点击Generate
–>Open Project
后,进入Visual Studio
3、进入Visual Studio
之后,进行如下编译操作:
3.1、Release
模式下进行编译操作:
接着,在C/C++
–>预处理器
–>预处理器定义
中添加如下代码:
WINDOWS;COMPILEDWITHC11;
完成以上操作后,进行生成操作
,步骤如下:
在生成时,会报如下错误:
无法打开包括文件: “opencv/cv.h”: No such file or directory
原因是项目文件中头文件引入有误,改成如下形式即可:
#include <opencv2/opencv.hpp>
保存之后,再次进行生成
操作,会报如下错误:
"CV_RGB2GRAY": 未声明的标识符
解决方法:双击报错的内容,进入Traking.cc
文件,在该文件中添加如下代码:
#include <opencv2/imgproc/types_c.h> //添加
再次进行生成
操作,还会有如下报错:
“CvMat”: 未声明的标识符
解决方法:双击报错的内容,进入PnPsolver.cc
文件
找到并进入头文件PnPsolver.h
在头文件中添加如下代码:
// 引入如下头文件
#include <opencv2/core/types_c.h>
#include <opencv2/core/core_c.h>
再次对ORB_SLAM3
进行生成
操作,会报如下错误:
"CV_GRAY2BGR": 未声明的标识符
双击进入报错文件中,添加如下内容即可:
// 添加如下代码
#include <opencv2\imgproc\types_c.h>
#include <opencv2/imgcodecs/legacy/constants_c.h>
再次点击生成
按钮,会报如下错误:
"CV_REDUCE_SUM": 未声明的标识符
解决方法:
在报错文件中添加如下代码:
// 添加的代码
#include <opencv2/core/core_c.h>
再次点击生成
按钮,即可完成Release
模式下的生成!
3.2、Debug
模式下进行编译操作:
接着,在C/C++
–>预处理器
–>预处理器定义
中添加如下代码:
WINDOWS;COMPILEDWITHC11;
在ORB_SLAM3
上右键,点击生成
即可!