OpenCv 有版本号常量吗?

Rui*_*ues 4 c++ opencv shared-libraries

我问这个问题是因为我安装了几个并且怀疑我是否加载了正确的动态库。

这个问题与这些问题略有不同,因为它们回答的是安装的内容,而不是您的应用程序链接的内容:

查找 Ubuntu 上安装的 OpenCV 版本

如何检查 openCV

avt*_*ton 5

除了 @berak 的精彩回答(与version.hpp相关):

OpenCV 2.4 和 OpenCV 3.0 分支中有不同的命名方案。
对于OpenCV 2.4.x,我们有这样的东西(请注意,对于2.4.x CV_VERSION_MAJOR4):

#define CV_VERSION_EPOCH    2
#define CV_VERSION_MAJOR    4
#define CV_VERSION_MINOR    8
#define CV_VERSION_REVISION 0
Run Code Online (Sandbox Code Playgroud)

对于OpenCV 3.0.x,我们有以下内容(请注意,CV_VERSION_MAJOR意义已更改!):

#define CV_VERSION_MAJOR    3
#define CV_VERSION_MINOR    0
#define CV_VERSION_REVISION 0
#define CV_VERSION_STATUS   "-dev"
Run Code Online (Sandbox Code Playgroud)

也就是说,如果您需要同时支持2.4.x abd 3.0.x,如果您想检查CV_VERSION_MAJOR.
CV_VERSION_EPOCH更喜欢检查:

#if (defined(CV_VERSION_EPOCH) && CV_VERSION_EPOCH == 2)
# OpenCV 2.4.x stuff
#else
# OpenCV 3.0 stuff
#endif
Run Code Online (Sandbox Code Playgroud)