本文链接: 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

打印输出opencv的版本信息的更多相关文章

  1. Opencv各个版本的万能头文件

    每次下载opencv的新版本时,都需要重新写头文件,更改链接库配置,很麻烦有木有?下面这个头文件是我在别人的代码中淘出来的,很不错,与大家分享~(具体作者忘记了,不好意思啊) 作者很巧妙地利用Open ...

  2. Linux下如何查看版本信息

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然.   1.# uname -a   (Linux查看版本当前操作系统内核信息)   L ...

  3. 获得appstore里面app的最新的版本信息,进行版本更新

    版本更新有两种方式 一种是从服务器获得最新的版本信息和当前app的版本进行比较 另外一种是获得appStore上最新的版本信息和当前的app的版本进行比较 现在我来说一下如何通过appStore获得最 ...

  4. 查看Linux版本信息

    如何查看Linux系统使用的版本信息呢? 下面这篇文章收集.整理了一些常见的查看Linux系统版本的方法.由于手头只有Oracle Linux.Centos Linux.Redhat Linux三个版 ...

  5. Android APP 读取 AndroidManifest.xml 中的版本信息详解

    APP都会涉及到版本的问题,Android APP的版本信息保存在AndroidManifest.xml文件的顶部.如下图: 有2个属性表示,“android:versionCode”和“androi ...

  6. javascript判断手机浏览器版本信息

    <script type="text/javascript"> /* * 智能机浏览器版本信息: * */ var browser={ versions:functio ...

  7. C#,C++修改vs文件模板,添加自定义代码版权版本信息

    简单型的修改类似该路径下的模板文件即可(vs版本或安装路径不同路径可能不同) C#: 模板参数参考https://msdn.microsoft.com/zh-cn/library/eehb4faa.a ...

  8. iOS 获取应用版本信息

    现在许多接口都需要上传应用版本信息,所以呢,这个是必不可少的,可以在进入应用的时候先获取到,然后存在单例中,用的时候直接调用单例就好了,记住这些字符串 NSString *executableFile ...

  9. 查看已安装的CentOS版本信息:

    如何查看已安装的CentOS版本信息: 1)[root@localhost ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@ ...

随机推荐

  1. jdk,jre下载安装

    JDK安装https://blog.csdn.net/u012934325/article/details/73441617/jre需要手动生成在JDK安装目录下,的bin cmd执行bin\ jli ...

  2. 在window环境下安装numpy模块(包)

    刚开始接触python,安装numpy着实费了不少劲.总结一下,新人少走弯路. numpy作用: 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处 ...

  3. Vue成员与指令介绍

    一.Vue介绍 1.什么是vue 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围, 可以独立完成前后端分离式web项目的渐进式JavaScript框架 2.为什么要学vue 三大主流框架之 ...

  4. jQuery_完成表单注册检验

    在校验表单的时候会很麻烦,但是jq可以用很简单的方法来检验,即使用validate. 原表单: 代码 <!DOCTYPE html> <html> <head> & ...

  5. 文章翻译:ABP如何在EF core中添加数据过滤器

    原文地址:https://aspnetboilerplate.com/Pages/Documents/Articles%5CHow-To%5Cadd-custom-data-filter-ef-cor ...

  6. Android_(传感器)指南针

    Android方向传感器 传感器中的X:如上图所示,规定X正半轴为北,手机头部指向OF方向,此时X的值为0,如果手机头部指向OG方向,此时X值为90,指向OH方向,X值为180,指向OE,X值为270 ...

  7. JS框架_(JQuery.js)网页文字评论弹幕

    百度云盘 传送门 密码:3azl jQuery网页右下角文字评论弹幕效果 <!DOCTYPE html> <html> <head> <title>jQ ...

  8. Spring boot之MyBatis

    文章目录1. 环境依赖2. 数据源2.1. 方案一 使用 Spring Boot 默认配置2.2. 方案二 手动创建3. 脚本初始化4. MyBatis整合4.1. 方案一 通过注解的方式4.1.1. ...

  9. js style.display = "" 和style.display="none" 区别

    style.display = "":是清除display样式,display将使用默认值(块元素会变成block,内联元素会变成inline)style.display=&quo ...

  10. [Java]将算术表达式(中序表达式Infix)转成后续表达式Postfix

    Inlet类: package com.hy; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...