如何确定OpenCV版本

mf98qq94  于 2022-11-15  发布在  其他
关注(0)|答案(9)|浏览(247)

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

  • 我最感兴趣的是知道一种通过编程(和跨平台)来完成它的方法 *,但我甚至找不到一种方法来从代码外部确定安装的版本。

我在Fedora上使用C++03。

t3psigkw

t3psigkw1#

您可以检查CV_VERSION宏。

r1wp621o

r1wp621o2#

您可以检查以下宏变量:

CV_MAJOR_VERSION
CV_MINOR_VERSION
nxowjjhe

nxowjjhe3#

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

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

yb3bgrhw4#

版本字符串位于:
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
s3fp2yjn

s3fp2yjn5#

我想使用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 并使用 * 点 * 之前的第一个值。

nkhmeac6

nkhmeac66#

pkg-config --修改版本打开

lf5gs5x2

lf5gs5x27#

如果你从svn仓库安装,你可以看到如下的版本:

# in the opencv.svn directory
svn info
ggazkfy8

ggazkfy88#

如果您在Windows下工作,并且需要配置代码块或任何其他IDE(因此,您还不能发出任何命令,也不能编译程序)您可以简单地转到OpenCV的安装文件夹,并在子文件夹“/lib”中查看库的最后字母。例如,如果您偶然发现一个名为 opencv_ts300.libopencv_world300.lib 的文件,则主版本号为3,次版本号为0,修订版本号为0。
(Note:这种方法很可能会失败,我的意思是当这些信息与真实的版本不一致时,但这可能是修订版,但不太可能是主要版本)

wkftcu5l

wkftcu5l9#

据我所知,主要有三种方式:

  • 通过C++代码确定:-

将这些行放入代码中:

std::cout << cv::getVersionMajor() << std::endl;
   std::cout << cv::getVersionMinor() << std::endl;
   std::cout << cv::getVersionRevision() << std::endl;

所有这些函数都有int返回类型。

4
2
0

但是,我更喜欢getVersionString(),因为它只需要一个函数调用就可以打印所有内容,并且它具有std::string返回类型:

std::cout << cv::getVersionString() << std::endl;  // 4.2.0
  • 使用OpenCV提供的opencv_version二进制确定:-

例如,在Linux计算机上,转到OpenCVbin目录(通常为/usr/local/bin)并运行

./opencv_version

在我的Linux计算机上,它显示4.2.0

  • 通过version.hpp文件确定:-

OpenCV通过三个宏CV_VERSION_MAJORCV_VERSION_MINORCV_VERSION_REVISION指定version.hpp头文件中的版本
例如,在Linux计算机上,转到OpenCVinclude目录(通常为/usr/local/include)并读取version.hpp文件:

$ cd /usr/local/include/opencv4/opencv2/core
$ head version.hpp

相关问题