如何确定我安装了哪个版本的OpenCV?
我在Fedora上使用C++03。
t3psigkw1#
您可以检查CV_VERSION宏。
CV_VERSION
r1wp621o2#
您可以检查以下宏变量:
CV_MAJOR_VERSION CV_MINOR_VERSION
nxowjjhe3#
如果您还想获取生成信息,可以使用以下代码:
printf("OpenCV: %s", cv::getBuildInformation().c_str());
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
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 并使用 * 点 * 之前的第一个值。
nkhmeac66#
pkg-config --修改版本打开
lf5gs5x27#
如果你从svn仓库安装,你可以看到如下的版本:
# in the opencv.svn directory svn info
ggazkfy88#
如果您在Windows下工作,并且需要配置代码块或任何其他IDE(因此,您还不能发出任何命令,也不能编译程序)您可以简单地转到OpenCV的安装文件夹,并在子文件夹“/lib”中查看库的最后字母。例如,如果您偶然发现一个名为 opencv_ts300.lib 或 opencv_world300.lib 的文件,则主版本号为3,次版本号为0,修订版本号为0。(Note:这种方法很可能会失败,我的意思是当这些信息与真实的版本不一致时,但这可能是修订版,但不太可能是主要版本)
wkftcu5l9#
据我所知,主要有三种方式:
C++
将这些行放入代码中:
std::cout << cv::getVersionMajor() << std::endl; std::cout << cv::getVersionMinor() << std::endl; std::cout << cv::getVersionRevision() << std::endl;
所有这些函数都有int返回类型。
int
4 2 0
但是,我更喜欢getVersionString(),因为它只需要一个函数调用就可以打印所有内容,并且它具有std::string返回类型:
getVersionString()
std::string
std::cout << cv::getVersionString() << std::endl; // 4.2.0
OpenCV
opencv_version
例如,在Linux计算机上,转到OpenCVbin目录(通常为/usr/local/bin)并运行
Linux
bin
/usr/local/bin
./opencv_version
在我的Linux计算机上,它显示4.2.0
4.2.0
version.hpp
OpenCV通过三个宏CV_VERSION_MAJOR、CV_VERSION_MINOR和CV_VERSION_REVISION指定version.hpp头文件中的版本例如,在Linux计算机上,转到OpenCVinclude目录(通常为/usr/local/include)并读取version.hpp文件:
CV_VERSION_MAJOR
CV_VERSION_MINOR
CV_VERSION_REVISION
include
/usr/local/include
$ cd /usr/local/include/opencv4/opencv2/core $ head version.hpp
9条答案
按热度按时间t3psigkw1#
您可以检查
CV_VERSION
宏。r1wp621o2#
您可以检查以下宏变量:
nxowjjhe3#
如果您还想获取生成信息,可以使用以下代码:
yb3bgrhw4#
版本字符串位于:
https://github.com/opencv/opencv/blob/master/modules/core/include/opencv2/core/version.hpp
s3fp2yjn5#
我想使用version.hpp定义来增强其中一个答案。
请注意该解决方案的潜在问题:
v. 2.4.13.6定义:
v.3.4.2定义:
因此,CV_VERSION_MAJOR 不具有可比性。更安全的解决方案是解析 CV_VERSION 并使用 * 点 * 之前的第一个值。
nkhmeac66#
pkg-config --修改版本打开
lf5gs5x27#
如果你从svn仓库安装,你可以看到如下的版本:
ggazkfy88#
如果您在Windows下工作,并且需要配置代码块或任何其他IDE(因此,您还不能发出任何命令,也不能编译程序)您可以简单地转到OpenCV的安装文件夹,并在子文件夹“/lib”中查看库的最后字母。例如,如果您偶然发现一个名为 opencv_ts300.lib 或 opencv_world300.lib 的文件,则主版本号为3,次版本号为0,修订版本号为0。
(Note:这种方法很可能会失败,我的意思是当这些信息与真实的版本不一致时,但这可能是修订版,但不太可能是主要版本)
wkftcu5l9#
据我所知,主要有三种方式:
C++
代码确定:-将这些行放入代码中:
所有这些函数都有
int
返回类型。但是,我更喜欢
getVersionString()
,因为它只需要一个函数调用就可以打印所有内容,并且它具有std::string
返回类型:OpenCV
提供的opencv_version
二进制确定:-例如,在
Linux
计算机上,转到OpenCV
bin
目录(通常为/usr/local/bin
)并运行在我的
Linux
计算机上,它显示4.2.0
version.hpp
文件确定:-OpenCV
通过三个宏CV_VERSION_MAJOR
、CV_VERSION_MINOR
和CV_VERSION_REVISION
指定version.hpp
头文件中的版本例如,在Linux计算机上,转到
OpenCV
include
目录(通常为/usr/local/include
)并读取version.hpp
文件: