如何确定我安装了哪个版本的OpenCV?
我最感兴趣的是以编程的方式(并且跨平台)进行操作,但我甚至找不到一种从代码之外确定已安装版本的方法。
我正在Fedora上使用C++03。
CV_VERSION
宏。CV_VERSION
宏定义在哪个头文件中? - Ray如果您想获取构建信息,可以使用此代码:
printf("OpenCV: %s", cv::getBuildInformation().c_str());
您可以检查以下宏变量:
CV_MAJOR_VERSION
CV_MINOR_VERSION
版本字符串位于:
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
#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中定义了and:
#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
pkg-config --modversion opencv
# in the opencv.svn directory
svn info
如果你正在Windows下工作,并且需要配置Codeblocks或其他IDE(因此,你还无法发出任何命令或编译程序),那么你可以简单地进入OpenCV安装文件夹,然后在子文件夹“/lib”中查找库文件的最后几个字母。所有的库都以反映了OpenCV构建的主版本、次版本和修订版本的模式进行命名。例如,如果你遇到一个名为opencv_ts300.lib或opencv_world300.lib的文件,则主版本是3,次版本是0,修订版本是0。
(注意:这种方法可能会失败,当这些信息与实际版本不符合时,这可能是由于修订版本但不大可能是由于主版本)
C++
代码进行确定:- std::cout << cv::getVersionMajor() << std::endl;
std::cout << cv::getVersionMinor() << std::endl;
std::cout << cv::getVersionRevision() << std::endl;
所有这些函数都具有 int
返回类型。在我的 Linux
机器上,我获得了:
4
2
0
然而,我更喜欢getVersionString()
,因为它只需一个函数调用即可打印所有内容,并且它具有std::string
返回类型:
std::cout << cv::getVersionString() << std::endl; // 4.2.0
OpenCV
提供的opencv_version
二进制文件进行确定:-Linux
机器上,转到OpenCV
bin
目录,即大多数情况下是/usr/local/bin
,然后运行./opencv_version
在我的 Linux
机器上,它显示为 4.2.0
version.hpp
文件确定:OpenCV
通过三个宏 CV_VERSION_MAJOR
、CV_VERSION_MINOR
和 CV_VERSION_REVISION
在 version.hpp
头文件中指定版本。OpenCV
的 include
目录,即大多数情况下是 /usr/local/include
,并阅读 version.hpp
文件:$ cd /usr/local/include/opencv4/opencv2/core
$ head version.hpp