Ubuntu下OpenCV2和OpenCV3共存的方法

    由于OpenCV3OpenCV2的基础上改动比较大,且向下支持不够好,所以,很多老工程需要用OpenCV2,而新工程又仅支持OpenCV3。如果两者同时安装也不冲突,本质上也就是一些三方库,放在/usr/local/lib下面,但是如果使用FIND_PACKAGE(OpenCV REQUIRED)的时候,其本质是去/usr/local/share下面寻找cmake文件,而两个版本的cmake文件同名,所以必然是后安装的版本覆盖前安装版本的cmake文件,这样一来使用起来就不太方便了(需要修改成普通的添加三方库的方法来使用),下面分享一个小方法使得其可以更方便使用。

  1. 默认大家已经有自己编译安装好的OpenCV(这里假设是OpenCV2
  2. 下载OpenCV3的源码 opencv3.2 我选择了最新的3.2版本,和3.1差别不大。
  3. 使用cmake-guiCMAKE_INSTALL_PREFIX修改成/usr/local/opencv3。
  4. 之后generate,再makesudo make install,在对应目录下就有OpenCV3的头文件和库文件了。
    到这里就将现版本的OpenCV和原有版本的OpenCV安装在不同的目录,相对应的cmake文件也被安装在不同目录。那么在CMakeList文件里面使用OpenCV3时,在FIND_PACKAGE(OpenCV REQUIRED)的前面,
set(OpenCV_DIR "usr/local/opencv3/share/OpenCV3"
这样系统就能够找到 OpenCV3的头文件和库了,如果继续使用 OpenCV2,不添加这句,系统会去默认目录 /usr/local/share下面找 OpenCV2即可

Q1:如果出现libopencv_XXX.so.3.2: cannot open shared object file: No such file or directory,怎么办?
A1:
  1. 进入目录:/etc/ld.so.conf.d、
  2. 打开(创建)Opencv.conf
  3. 添加 /usrlocal/opencv3/lib
  4. 执行ldconfig即可。

Q2:如果头文件里面出现某个函数未声明的问题。

A1: 这是因为Opencv3不能很好的对Opencv2进行兼容,需要使用Opencv3的头文件,如果是使用Qt Creator,那就在pro文件内增加

INCLUDEPATH += /usr/local/opencv3/include/




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值