1.opencv/cv.h: 没有那个文件或目录

将opencv/cv.h:修改为

#include <opencv2/opencv.hpp>

2.‘CvMat’ has not been declared

添加头文件

#include <opencv2/core/types_c.h>

3.‘CV_REDUCE_SUM’ was not declared in this scope

添加头文件

#include<opencv2/core/core_c.h>

4.‘cvCreateMat’ was not declared in this scope;

等以下的报错
在这里插入图片描述
添加头文件

#include <opencv2/imgproc/types_c.h>

#include <opencv2/imgproc.hpp>

5. 编译DBoW2等出现"OpenCV > 2.4.3 not found."

make[2]: *** No rule to make target '../Thirdparty/DBoW2/lib/libDBoW2.so', needed by '../lib/libORB_SLAM2.so'

将CMakeLists.txt的opencv改称对应版本

6.‘CV_LOAD_IMAGE_UNCHANGED’ was not declared in this scope

修改为

cv::IMREAD_UNCHANGED
   CV_LOAD_IMAGE_UNCHANGED  = -1 ( = cv::IMREAD_UNCHANGED),
   CV_LOAD_IMAGE_GRAYSCALE 	= 0  ( = cv::IMREAD_GRAYSCALE),
   CV_LOAD_IMAGE_COLOR     	= 1  ( = cv::IMREAD_COLOR),
   CV_LOAD_IMAGE_ANYDEPTH   = 2  ( = cv::IMREAD_ANYDEPTH),
   CV_LOAD_IMAGE_ANYCOLOR   = 4

7. ‘CV_GRAY2BGR’ was not declared in this scope

修改方法为:将CV_GRAY2BGR改为cv::COLOR_GRAY2BGR
其余颜色变换也是将CV_改为cv::COLOR
或者加入头文件

#include <opencv2/imgproc/types_c.h>

8. error: ‘CV_CALIB_CB_ADAPTIVE_THRESH’ was not declared in this scope

#include <opencv2/calib3d/calib3d_c.h>

9.‘CV_AA’ was not declared in this scope

#include <opencv2/imgproc/imgproc_c.h>

10.‘CV_FONT_HERSHEY_SIMPLEX’ was not declared in this scope

修改方法:将CV_FONT_HERSHEY_SIMPLEX改为cv::FONT_HERSHEY_SIMPLEX

11. error: ‘CV_REDUCE_SUM’ was not declared in this scope

#include<opencv2/core/core_c.h>

12.error: static assertion failed: std::map must have the same value_type as its allocator

在loopClosing.h:50修改

typedef map<KeyFrame*,                  //键
                g2o::Sim3,                  //值
                std::less<KeyFrame*>,       //排序算法
                Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> > // 指定分配器,和内存空间开辟有关. 为了能够使用Eigen库中的SSE和AVX指令集加速,需要将传统STL容器中的数据进行对齐处理
                > KeyFrameAndPose;

typedef map<KeyFrame*,                  //键
                g2o::Sim3,                  //值
                std::less<KeyFrame*>,       //排序算法
                Eigen::aligned_allocator<std::pair<KeyFrame* const , g2o::Sim3> > // 指定分配器,和内存空间开辟有关. 为了能够使用Eigen库中的SSE和AVX指令集加速,需要将传统STL容器中的数据进行对齐处理
                > KeyFrameAndPose;
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐