如何确定我安装了哪个版本的 OpenCV?
我最感兴趣的是知道一种以编程方式(和跨平台)执行它的方法,但我什至找不到从代码外部确定已安装版本的方法。
我在 Fedora 上使用 C++03。
您可以检查CV_VERSION
宏。
您可以检查以下宏变量:
CV_MAJOR_VERSION
CV_MINOR_VERSION
如果您还想获取构建信息,可以使用以下代码:
printf("OpenCV: %s", cv::getBuildInformation().c_str());
版本字符串位于:
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
我想使用 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并使用点之前的第一个值。
pkg-config --modversion opencv
如果您从 svn 存储库安装,您可以看到准确的修订版本,如下所示:
# in the opencv.svn directory
svn info
如果您在 Windows 下工作并且需要配置 Codeblocks 或任何其他 IDE(因此,您还不能发出任何命令,也不能编译程序),您可以简单地转到 OpenCV 安装文件夹并查看最后的文件子文件夹“/lib”中的库。所有库都以反映主要、次要和 OpenCV 构建版本的模式命名。例如,如果您偶然发现名为opencv_ts300.lib或opencv_world300.lib的文件那么major是3,minor是0,revision是0。
(注意:这个方法很可能会失败我的意思是当这些信息不符合真实版本时,但这可能是修订版,但不太可能是专业版)