opencv常见用法和opencv3->opencv4版本切换

opencv常见用法和opencv3->opencv4版本切换

  • 一、opencv4的一些语法用法记录
    • 1.1 cv::TermCriteria
      • 1.1.1 Public Types
      • 1.1.2 defaut constructor
      • 1.1.3 构造2
  • 二、opencv3->opencv4版本切换报错
    • 2.1 identifier "CV_AA" is undefined:
    • 2.2 identifier "CV_GRAY2RGB" is undefined:
    • 2.3 identifier "CV_CALIB_CB_ADAPTIVE_THRESH" is undefined
    • 2.4 fatal error: opencv/cv.h: No such file or directory
    • 2.5 fatal error: opencv/highgui.h: No such file or directory
    • 2.6 error: ‘CV_FONT_HERSHEY_SIMPLEX’ was not declared in this scope
    • 2.7 error: ‘CV_WINDOW_NORMAL’ was not declared in this scope
    • 2.8 error: ‘CV_INTER_LINEAR’ was not declared in this scope
    • 2.9 error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
    • 2.10 pcl的一大段错误
    • 2.11 error: ‘CvMat’ does not name a type
      • 2.11.1
      • 2.11.2 CV_REDUCE_SUM(‘CV_REDUCE_SUM’ was not declared in this scope)
    • 2.12 error: static assertion failed: std::map must have the same value_type as its allocator on Ubuntu 20.04
    • 2.13 编译DBoW2等出现"OpenCV > 2.4.3 not found."
    • 2.14 Pangolin出错(orb_slam2在ubuntu20.04上编译时)
    • 2.15 fatal error: opencv/cxcore.h: No such file or directory
    • 2.16 CV_LOAD_IMAGE_UNCHANGED
    • 2.17 CV_MINMAX

opencv

一、opencv4的一些语法用法记录

1.1 cv::TermCriteria

The class defining termination criteria for iterative algorithms(这个类定义了迭代算法的终止准则)

1.1.1 Public Types

枚举类

enum Type {
		COUNT =1,
		MAX_ITER =COUNT,
		EPS =2
}
Enumerator Meaning
COUNT the maximum number of iterations or elements to compute最大迭代次数
MAX_ITER ditto最大迭代次数
EPS the desired accuracy or change in parameters at which the iterative algorithm stops迭代算法停止时所需的精度或参数变化

1.1.2 defaut constructor

cv::TermCriteria::TermCriteria()	

1.1.3 构造2

cv::TermCriteria::TermCriteria(int type, int maxCount, double epsilon)	
type The type of termination criteria, one of TermCriteria::Type
maxCount The maximum number of iterations or elements to compute
epsilon The desired accuracy or change in parameters at which the iterative algorithm stops

二、opencv3->opencv4版本切换报错

2.1 identifier “CV_AA” is undefined:

#include 

2.2 identifier “CV_GRAY2RGB” is undefined:

#include 

2.3 identifier “CV_CALIB_CB_ADAPTIVE_THRESH” is undefined

CV_CALIB_CB_NORMALIZE_IMAGE
CV_CALIB_CB_FILTER_QUADS
CV_CALIB_CB_FAST_CHECK
CV_CALIB_CB_NORMALIZE_IMAGE
CV_CALIB_CB_FAST_CHECK
CV_CALIB_CB_ADAPTIVE_THRESH
CV_CALIB_CB_FILTER_QUADS

#include 

2.4 fatal error: opencv/cv.h: No such file or directory

找不到opencv/cv.h文件
#include 改为

#include 

2.5 fatal error: opencv/highgui.h: No such file or directory

#include 

2.6 error: ‘CV_FONT_HERSHEY_SIMPLEX’ was not declared in this scope

CV_FONT_HERSHEY_SIMPLEX--->FONT_HERSHEY_SIMPLEX

opencv4部分取消了CV_前缀
正确作法:

#include 

2.7 error: ‘CV_WINDOW_NORMAL’ was not declared in this scope

#include 

2.8 error: ‘CV_INTER_LINEAR’ was not declared in this scope

将CV_删除转到变量定义查看某hpp,再寻找所对应的.h文件

#include

2.9 error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope

#include 

2.10 pcl的一大段错误

pcl报错(types等等)
选择c++14 编译标准
https://blog.csdn.net/weixin_44001261/article/details/123299374.

2.11 error: ‘CvMat’ does not name a type

2.11.1

error: ‘CvMat’ has not been declared
cvCreateMat()

添加头文件

#include 

2.11.2 CV_REDUCE_SUM(‘CV_REDUCE_SUM’ was not declared in this scope)

#include

查阅
https://docs.opencv.org.

2.12 error: static assertion failed: std::map must have the same value_type as its allocator on Ubuntu 20.04

链接: https://github.com/raulmur/ORB_SLAM2/pull/585/commits/d5c04468ce85d600f8a0a23fa280b0153fe115e0.

2.13 编译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'

改成对应的版本

2.14 Pangolin出错(orb_slam2在ubuntu20.04上编译时)

https://blog.csdn.net/qq_41035283/article/details/122093494.
https://blog.csdn.net/qq_37719890/article/details/122072958.
https://blog.csdn.net/guowenkang123/article/details/120172907.

2.15 fatal error: opencv/cxcore.h: No such file or directory

#include

2.16 CV_LOAD_IMAGE_UNCHANGED

添加头文件

#include 
或者修改为
cv::IMREAD_UNCHANGED

2.17 CV_MINMAX

添加头文件

#include

你可能感兴趣的:(ros,slam学习调试,opencv,计算机视觉,人工智能)