本文链接: https://mangoroom.cn/opencv/print-opencv-version-info.html

查看自己安装的opencv的版本信息的方法有两种。

方法一-查看lib文件

到opencv的安装目录。进去lib文件夹,查看opencv的lib文件名称,文件名称中含有的数字便是opencv的版本信息。例如

opencv_calib3d411d.lib
opencv_core411d.lib
opencv_dnn411d.lib
opencv_features2d411d.lib
opencv_flann411d.lib
opencv_gapi411d.lib
opencv_highgui411d.lib
opencv_imgcodecs411d.lib
opencv_imgproc411d.lib
opencv_ml411d.lib
opencv_objdetect411d.lib
opencv_photo411d.lib
opencv_stitching411d.lib
opencv_video411d.lib
opencv_videoio411d.lib

以上的opencv版本就是opencv4.1.1,版本号接着的字母d是debug的意思,表示这是debug版的opencv.

方法二-代码输出

除了方法一查看lib文件的方法,还可以以代码输出的方式。输出的代码如下:

#include<iostream>
#include<opencv2/opencv.hpp> int main()
{
std::cout << "OpenCV version : " << CV_VERSION << std::endl;
std::cout << "Major version : " << CV_MAJOR_VERSION << std::endl;
std::cout << "Minor version : " << CV_MINOR_VERSION << std::endl;
std::cout << "Subminor version : " << CV_SUBMINOR_VERSION << std::endl; system("pause");
return 0;
}

运行后,芒果测试的输出结果为:

OpenCV version : 4.1.1-pre
Major version : 4
Minor version : 1
Subminor version : 1
Press any key to continue . . .

可以看到,以上的信息。芒果使用的opencv是opencv-4.1.1预览版的(芒果自编译),主要版本4,次要版本为1,次要子版本为1。


打印版本信息的代码非常简单,只需要输出定义的版本的几个宏,芒果顺便查阅了官方文档,几个宏的定义如下:

§ CV_MAJOR_VERSION
#define CV_MAJOR_VERSION CV_VERSION_MAJOR
§ CV_MINOR_VERSION
#define CV_MINOR_VERSION CV_VERSION_MINOR
§ CV_SUBMINOR_VERSION
#define CV_SUBMINOR_VERSION CV_VERSION_REVISION
§ CV_VERSION
#define CV_VERSION CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS

可以看到,与版本信息相关的几个宏定义都有两个以上的值,意味着输出CV_MAJOR_VERSION与CV_VERSION_MAJOR是一样的。

利用版本信息

不同的opencv版本代码使用有所不一样,所以要写出兼容不同版本opencv的代码,这时可以利用opencv的版本信息。

if ( CV_MAJOR_VERSION >= 4)
{
// opencv4.x版本代码
} else if(CV_MAJOR_VERSION >= 3)
{
// opencv3.x版本代码
}else
{
// opencv2.x版本代码
}

尾巴

网上很多人喜欢用imshow函数来验证opencv是否安装和配置成功,其实输出版本信息也是一个非常简单的方法。


本文由芒果浩明发布,转载请注明来源。

本文链接:https://mangoroom.cn/opencv/print-opencv-version-info.html

最新文章

  1. 基于spring 的单元测试
  2. 转 Visual C++ 将整合Clang
  3. Hello Mybatis 01 第一个CRUD
  4. Sqlite注入测试
  5. Testing - Selenium
  6. Zookeeper的功能以及工作原理
  7. 深入探析koa之异步回调处理篇
  8. Linux Shell删除某一个目录下的所有文件夹(保留其他文件)
  9. gtest官方文档浅析
  10. iOS 开发中keyChain的使用
  11. Express全系列教程之(四):获取Post参数的两种方式
  12. Python游戏编程入门
  13. Git综合使用命令行和gui工具小结
  14. jQuery 练习:取出数组字典的值, 静态对话框, clone方法应用
  15. @Value(&quot;#{}&quot;)与@Value(&quot;${}&quot;)的区别以及用法
  16. DS二叉树--层次遍历
  17. 【maven】Maven根据Profile读取不同配置环境配置文件
  18. C#中的集合(HashTable与Array类)
  19. java调试打断点和不打断点执行结果不一致问题解决
  20. python的os模块命令

热门文章

  1. idea 导入(非maven)web项目并发布到tomcat服务器
  2. codevs 2597 团伙x
  3. props 父组件给子组件传递参数
  4. TCP层bind系统调用的实现分析
  5. Windows下安装TensorFlow教程
  6. Why are dashes preferred for CSS selectors / HTML attributes?
  7. UVa 839 -- Not so Mobile(树的递归输入)
  8. Linux高级调试与优化——内存泄漏实战分析
  9. C++类继承方式及实践
  10. Kotlin之定义变量