我问这个问题是因为我已经安装了几个程序,如果加载正确的动态库,我会有一些疑问。
这个问题与这些问题略有不同,因为它们回答的是安装的内容,而不是应用程序链接的内容:
发布于 2015-10-10 08:11:06
除了great @berak的回答(与version.hpp相关):
OpenCV 2.4和OpenCV 3.0分支中有不同的命名方案。
对于OpenCV 2.4.x,我们有类似的内容(注意,对于2.4.x CV_VERSION_MAJOR
是4):
#define CV_VERSION_EPOCH 2
#define CV_VERSION_MAJOR 4
#define CV_VERSION_MINOR 8
#define CV_VERSION_REVISION 0
对于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"
也就是说,如果您需要同时支持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
发布于 2014-03-28 08:18:08
核心中有一个version.hpp头,它定义像CV_VERSION_MAJOR这样的常量,等等。
除此之外,cout << cv::getBuildInformation() << endl;
非常有用,因为它将向您展示在构建opencv时生成的cmake输出(因此您可以看到依赖关系,不管是使用ffmpeg还是gstreamer之类的)。
编辑:请使用CV_MAJOR_VERSION,而不是CV_VERSION_MAJOR,因为后者的使用在2.4和主
发布于 2015-06-19 09:35:11
这是OpenCV 2.4.8来自version.hpp的定义:
#define CV_VERSION_EPOCH 2
#define CV_VERSION_MAJOR 4
#define CV_VERSION_MINOR 8
#define CV_VERSION_REVISION 0
https://stackoverflow.com/questions/22702555
复制相似问题