如何在代码中区分OpenCV版本 如何区分是OpenCV2还是OpenCV3

本文介绍了如何在C++和Python中判断OpenCV版本的方法。对于C++,可以通过预处理宏CV_VERSION_EPOCH和CV_VERSION_MAJOR等进行判断;对于Python,可以直接通过cv2模块的__version__属性获取版本号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、C++

OpenCV在C++中的版本号在<opencv2/core/version.hpp>里面,贴出部分和版本相关的定义

// opencv2
#define CV_VERSION_EPOCH    2
#define CV_VERSION_MAJOR    4
#define CV_VERSION_MINOR    13
#define CV_VERSION_REVISION 4
//opencv3
#define CV_VERSION_MAJOR    3
#define CV_VERSION_MINOR    4
#define CV_VERSION_REVISION 1
#define CV_VERSION_STATUS   ""

CV_VERSION_EPOCH是OpenCV2指定主版本号“2”的宏定义,只在OpenCV2中有,因此可使用如下代码来区分是OpenCV2还是OpenCV3

#include <iostream>
#include <opencv2/core/version.hpp>
#include <opencv2/core/core.hpp>

using namespace cv;

#if CV_VERSION_EPOCH == 2
#define OPENCV2
#elif CV_VERSION_MAJOR == 3
#define  OPENCV3
#else
#error Not support this OpenCV version
#endif

int main() {
#ifdef OPENCV2
    std::cout << "Hello, OpenCV2!" << std::endl;
#elif defined(OPENCV3)
    std::cout << "Hello, OpenCV3!" << std::endl;
#endif
    return 0;
}

2、Python

import cv2

if __name__ == "__main__":
    version = cv2.__version__
    if version.split('.')[0]=="3":
        print("this is opencv3")
    else:
        print("this is opencv2")

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值