27

如何确定我安装了哪个版本的 OpenCV?

我最感兴趣的是知道一种以编程方式(和跨平台)执行它的方法,但我什至找不到从代码外部确定已安装版本的方法。

我在 Fedora 上使用 C++03。

4

8 回答 8

35

您可以检查CV_VERSION宏。

于 2012-06-14T09:59:40.040 回答
19

您可以检查以下宏变量:

CV_MAJOR_VERSION
CV_MINOR_VERSION
于 2012-06-14T09:57:31.043 回答
18

如果您还想获取构建信息,可以使用以下代码:

    printf("OpenCV: %s", cv::getBuildInformation().c_str());
于 2015-04-26T21:05:39.277 回答
13

版本字符串位于:

https://github.com/opencv/opencv/blob/master/modules/core/include/opencv2/core/version.hpp

Top of version.hpp, below the BSD license:
#define CV_VERSION_MAJOR    3
#define CV_VERSION_MINOR    2
#define CV_VERSION_REVISION 0
于 2017-03-31T23:10:04.597 回答
3

我想使用 version.hpp 定义来增强答案之一。

请注意该解决方案的潜在问题:

v. 2.4.13.6 定义:

#define CV_VERSION_EPOCH 2
#define CV_VERSION_MAJOR 4
#define CV_VERSION_MINOR 13
#define CV_VERSION_REVISION 6
#if CV_VERSION_REVISION
#  define CV_VERSION    CVAUX_STR(CV_VERSION_EPOCH) "." CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION)
#else
#  define CV_VERSION        CVAUX_STR(CV_VERSION_EPOCH) "." CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR)
#endif

v. 3.4.2 定义:

#define CV_VERSION_MAJOR 3
#define CV_VERSION_MINOR 4
#define CV_VERSION_REVISION 2
#define CV_VERSION    CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS

因此,CV_VERSION_MAJOR没有可比性。更安全的解决方案是解析 CV_VERSION并使用之前的第一个值。

于 2018-08-14T13:26:34.673 回答
3

pkg-config --modversion opencv

于 2018-09-21T12:11:42.497 回答
1

如果您从 svn 存储库安装,您可以看到准确的修订版本,如下所示:

# in the opencv.svn directory
svn info
于 2012-06-14T10:05:28.553 回答
0

如果您在 Windows 下工作并且需要配置 Codeblocks 或任何其他 IDE(因此,您还不能发出任何命令,也不能编译程序),您可以简单地转到 OpenCV 安装文件夹并查看最后的文件子文件夹“/lib”中的库。所有库都以反映主要、次要和 OpenCV 构建版本的模式命名。例如,如果您偶然发现名为opencv_ts300.libopencv_world300.lib的文件那么major是3,minor是0,revision是0。

(注意:这个方法很可能会失败我的意思是当这些信息不符合真实版本时,但这可能是修订版,但不太可能是专业版)

于 2017-08-14T19:01:14.693 回答