OpenCV+OpencCV_contrib安装及error分析

话不多说,这一篇即是自己搭建 slam 程序遇到的第一个暗坑所做的总结; 做 slam 的第一步是从 IO 图片或者视频开始,我们很自然的要用到 OpenCV,但是如果 想要在 opencv 中使用 sift 算子,我们需要安装 extra_modules(Opencv_contrib)组件, 小 N: why? OptIT:因为 sift 和 surf 是需要专利付费的算法,专利权隶属于哥伦比亚大学,因此 opencv3 将一些不稳定的或需要专利付费的算法整理出了一个模块,所以如果工业界的同学们需要用 这两个算法的时候(居然不用 ORB?),要谨慎呀。 
 
安装 Opencv 和 Opencv_contrib 的时候要注意版本匹配,下面给出网址大家可以从里面挑选 对应的版本: https://github.com/opencv 温馨提示:点击 opencv(or opencv_contrib) 
 
点击 release,选择你想要的版本: 
 
 选择需要的版本和文件(ubuntu 下选择源码安装) 。
 
OpenCV contrib 组件的下载同样,二者版本要匹配! 切记不要直接在 opencv 界面上选择 Clone and download,版本会是最新版本,和 opencv_contrib 不匹配; 
 
卸载 OpenCV 
接下来我们进去 ubuntu;首先我们需要先卸载安装的 opencv 版本(也可以选择不卸载,这 里提供给大家卸载的方法,毕竟我还不清楚如何在 ubuntu 下实现 opencv 多版本共存): 
 
1.完全卸载 opencv2 
1.1.From repository,从软件仓库中安装的 opencv2 sudo apt-get purge libopencv*  1.2.From source,使用 cmake 自行编译安装的 opencv 你 首进入原先编译 opencv2 的 build 目录,在该目录下打开终端;再执行以下代码。 sudo make uninstall cd .. sudo rm -r build sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv* 这一步可能有 error,忽略之。最后执行如下操作: sudo apt-get -purge remove opencv-doc opencv-data python-opencv 
 
对一些 error 可以无视,实现上述步骤,可进入/usr/local/include/下查看是否还是有 opencv 文档,如果没有,说明已经卸载成功; 安装 OpenCV 依赖项: 
接下来我们安装 opencv 的依赖项;在 ubuntu 下的好处就是对于任何操作几行指令就可以完 成,非常方便: 
 
sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodecdev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev sudo apt-get update 至此,依赖项安装完毕; 
 
安装 OpenCV 以及 Opencv_contribe 组件 
下面我们开始安装 opencv 以及 opencv_contrib 组件: 首先将二者解压,如果选择的是 zip 文档解压代码为  unzip opencv-3.4.1.zip unzip opencv_contrib-3.4.1.zip (OptiIT 选择的是 3.4.1 版本,各位解压时注意更换版本信息即可); 解压后将 opencv_contrib-3.4.1 移动道 opencv-3.4.1 文档目录下; 进入 opencv-3.4.1 文档,采用外部编译的方式,输入下列代码: mkdir build; cd build; 关键是 cmake 的代码,因为各位 ubuntu 的系统配置不尽相同,因此可以使用下列比较通用 的代码: cmake -D CMAKE_BUILD_TYPE=RELEASE \     -DCMAKE_INSTALL_PREFIX=/usr/local/ \     -DINSTALL_PYTHON_EXAMPLES=ON \ 
    -DINSTALL_C_EXAMPLES=ON \     -DPYTHON_EXCUTABLE=/usr/bin/python \     -DOPENCV_EXTRA_MODULES_PATH=/home/lxy/opencv/opencv-3.4.1/opencv_contrib3.4.1/modules \     -DWITH_CUDA=OFF \     -DWITH_CUFFT=OFF \     -DWITH_CUBLAS=OFF \     -DWITH_TBB=ON \     -DWITH_V4L=ON \     -DWITH_QT=ON \     -DWITH_GTK=ON \     -DWITH_OPENGL=ON \ -DBUILD_EXAMPLES=ON .. 
 
标红行意味着是各位需要根据自己的 opencv 解压后的文件目录以及 opencv_contrib 文 件目录(你已经把它移动道 opencv 目录下了)做更改; 注意最后两个点不能省略(懂的自然懂,不懂的记得 google 呦),如果某些文档没有安 装,可自己选择 on 或者 off 选项,此处也有人采用 cmake-gui 来设置,但是实现懒的学,就 先采用这种方式吧。 
 
正常的话,即可进入编译,此时输入 make –j8  -j8 的意思是 8 核同时编译,也意味着 8 个进程同时编译(给非 IT 的我一点见识-、-)    这个时候就会遇到各种各样的问题了: 除了下面这个 blog http://www.cnblogs.com/klchang/p/7510526.html 
 
可能遇到这种问题 问题 1 
 
 
这个时候很简单,将 contrib/modules/中的相关 hpp 文件移动到/usr/local/include 下即可(花 了我 1-2 个小时才明白这个道理),如果没有 opencv2 建立对应的文件夹,记得在 /usr/local/include 目录下所有的操作都需要加 sudo 权限 如建立 opencv2 文件夹: sudo mkdir opencv2 
 
如上述问题可采用 
sudo cp –r <source-directory> <goal-directory> 相信这样的操作大家一定可以摸索成功 问题 2 
linemod 问题,下面 github 上的一个哥们即把这个问题提出来,放在了网上,记得不需要加 cv:: 只需要把#include <opencv2/rgbd/linemod.hpp>加到报错的 hpp 中即可,如果出现 如问题 1 的 no such file or directory,采取问题 1 的解决方式即可。所以说,认真分析 bug 信息,坚持 google,我们会不断进步的(小 N:师兄加油!!! ) https://github.com/opencv/opencv/issues/10844 
 
问题 3 
如果出现关于 build opencv_contribute fatal error boostdesc_bgm.i and vgg; 这个问题遇到的时候极为难受,因为根本毫无头绪,然而总是由大神给出答案,可参考 opencv 网站上的 questions http://answers.opencv.org/question/174456/about-build-opencv_contribute-fatal-errorboostdesc_bgmi-and-vgg/ 我这里直接也提出解决方式: 
 
图片中标蓝的网址为: https://github.com/opencv/opencv_3rdparty/branches/stale 
 
这是遇到的所有问题,如果大家遇到了其他问题,欢迎一起讨论; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值