OpenCV 不同版本之间的切换

当我们在使用创建C++工程,配置OpenCV的时候,尤其是在复现其他开源项目的时候,可能会对OpenCV的版本和平台有要求,主要版本区别就是 OpenCV 2.x 版本还是 OpenCV 3.x 版本,平台区别是 x86 还是 x64, 这也是在使用 OpenCV 2.x 时有时会有以下问题发生的原因:

模块计算机类型“X64”与目标计算机类型“X86”冲突

或者是

模块计算机类型“X86”与目标计算机类型“X64”冲突

以下就是如何在一个 OpenCV 目录下同时编译两种不同版本和不同平台的库

1. 下载 OpenCV 源码

这里需要从 github上面下载,打开以后页面是:
这里写图片描述

我们在安装路径下,打开命令行工具中输入:

git clone https://github.com/opencv/opencv.git opencv_src

这里写图片描述

完成以后就会在对应路径下生成一个名字为 opencv_src 的文件夹。
这里写图片描述

2.编译 OpenCV 2.x 版本

此时我们进入 opencv_src 打开 Git Bash, 输入 :

git tag

可以看见,所有可以使用的 openCV 的版本就出来了:
这里写图片描述

然后我们选择自己想要的版本号(这里以2.4.13为例),输入:

git reset --hard 2.4.13

这里写图片描述

然后现在版本就变成 2.4.13 了按照我之前这篇博文的方式用Cmake 编译就可以了: Windows下 Cmake + VS 编译 OpenCV 源码

需要注意的是:

这里写图片描述
当我们选择编译器的时候, Visual Studio 14 2015 是编译 x86 版本的库;Visual Studio 14 2015 Win64 是编译 x64 版本的库,这里如果不嫌麻烦的话,可以新建两个不同名字的build文件夹(例如:build2, build2_x64),都编译一下,以备不时之需。

3. 编译 OpenCV 3.x 版本

完成后,仍然重复上述步骤,将 OpenCV 2.x 版本切换到 OpenCV 3.x 版本(这里以 3.4.0 为例),在 opencv_src 文件夹路径下在 Git Bash 中输入:

 git reset --hard 3.4.0

这里写图片描述

此时需要再重新新建一个不同名字的build文件夹,然后就是重复以上编译操作。OpenCV 3.x 一般都是 x64 平台使用的,所以直接按照博客的方法编译一种即可。

最后都完成后可以看到,在 opencv_src 文件夹中就同时会有不同版本以及不同平台的库,使用时直接添加相应目录路径就可以了。

这里写图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用OpenCV实现手势切换图片,您需要进行以下步骤: 1. 加载图片并将其转换为灰度图像。 2. 使用OpenCV的手势检测算法,如Haar级联分类器或背景减法,来检测手势。 3. 将检测到的手势与预定义的手势进行匹配,例如,您可以使用一个简单的映射表将手势与特定的操作相对应。 4. 根据匹配的手势切换到下一张或上一张图片。 下面是一个简单的Python示例代码: ``` import cv2 import os # 加载图片 images_dir = 'images/' images = os.listdir(images_dir) current_image = 0 num_images = len(images) img = cv2.imread(os.path.join(images_dir, images[current_image])) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 定义手势与操作之间的映射表 gesture_map = { 'fist': 'next', 'thumb': 'previous' } while True: # 显示当前图片 cv2.imshow('image', img) # 进行手势检测并匹配手势 # 这里使用一个假设的函数来模拟手势检测和匹配 gesture = detect_gesture(gray) if gesture in gesture_map: action = gesture_map[gesture] if action == 'next': current_image = (current_image + 1) % num_images elif action == 'previous': current_image = (current_image - 1) % num_images # 加载下一张或上一张图片 img = cv2.imread(os.path.join(images_dir, images[current_image])) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows() ``` 以上代码仅供参考,您需要根据自己的需求进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值