如何确定OpenCV版本

时间:2012-06-14 09:53:00

标签: c++ opencv version

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

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

我在Fedora上使用C ++ 03。

8 个答案:

答案 0 :(得分:32)

您可以查看CV_VERSION宏。

答案 1 :(得分:18)

您可以检查以下宏变量:

CV_MAJOR_VERSION
CV_MINOR_VERSION

答案 2 :(得分:16)

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

    printf("OpenCV: %s", cv::getBuildInformation().c_str());

答案 3 :(得分:7)

版本字符串位于:

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

答案 4 :(得分:3)

pkg-config --modversion opencv

答案 5 :(得分:1)

如果从svn存储库安装,则可以看到完全相同的修订版本:

# in the opencv.svn directory
svn info

答案 6 :(得分:0)

如果您在Windows下工作并且需要配置Codeblocks或任何其他IDE(因此,您无法发出任何命令或编译程序),您只需转到OpenCV的安装文件夹并查看最终结果子文件夹“/ lib”中的库的leters。所有库都以反映OpenCV构建的主要版本,次要版本和修订版本的模式命名。例如,如果您偶然发现名为 opencv_ts300的文件.lib opencv_world300.lib 然后major为3,minor为0,修订版为0。

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

答案 7 :(得分:0)

我想使用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

和第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 并在 dot 之前使用第一个值。