zoukankan      html  css  js  c++  java
  • 在ubuntu18.04中安装opencv_contrib-3.2.0采坑教程

    由于最近要在OpenCV3中使用SIFT和SURF特征提取,而自从OpenCV2升级到OpenCV3版本后,SIFT、SURF等这些算法都被移出opencv默认项目库,而被放到叫opencv_contrib的项目库。因此需要手动下载opencv和opencv_contrib的源码,然后将两个源码放在一起手动编译安装。

    由于我的电脑是VMware虚拟机跑的ubuntu18.04,并且ubuntu18.04中安装了ROS-melodic,而ROS-melodic装完后默认就把opencv-3.2.0版本顺带安装好了。所以,为了与ROS-melodic里面自带的opencv-3.2.0版本保持一致,我是下载了opencv-3.2.0和opencv_contrib-3.2.0源码,手动编译与安装,来覆盖ROS-melodic里面自带的opencv-3.2.0版本。下面我列出了我的环境:

    • VMware虚拟机
    • ubuntu18.04
    • opencv-3.2.0
    • opencv_contrib-3.2.0

    1.下载opencv-3.2.0和opencv_contrib-3.2.0源码

    去github下载就行了,下载地址如下:

    下载好后将这两个文件同时解压到同个文件夹下,我是解压在opencv_install这样一个文件夹,如下图所示。

     2.安装相关依赖

    在编译和安装opencv源码之前,需要先安装相关依赖库,安装命令如下:

    sudo apt-get install build-essential 
    sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev 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

    上面命令执行会报错,错误说libjaster-dev无法安装,解决办法如下:

    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    sudo apt update
    sudo apt install libjasper1 libjasper-dev

    3.用cmake-gui工具配置opencv编译参数

    (1)安装cmake-gui工具

    在正式编译opencv源码之前,需要对opencv中的CMake参数做设置,推荐用cmake-gui工具配置。先安装cmake-gui工具,如下命令:

    sudo apt-get install cmake-gui

    (2)设置cmake参数

    打开终端,输入下面的命令,启动cmake-gui工具:

    cmake-gui

    在打开的界面中,将where is the source code栏中设成opencv-3.2.0的路径,将where to build the binaries栏中设成opencv-3.2.0/build的路径,如下图所示。

     然后点击Configure按钮,进行配置。配置过程会报错误,错误说缺vgg_generated_48.i之类的,解决办法是直接去网上下载vgg_generated_48.i这个文件,下载地址如下:

    https://download.csdn.net/download/u013085286/10309843

    下载好vgg_generated_48.i后,将这个文件复制到报错中提示的路径下就行了。以我的路径为例,用下面的命令复制:

    cp vgg_generated_48.i /home/ubuntu1804/Downloads/opencv_install/opencv_contrib-3.2.0/modules/xfeatures2d/cmake/.download/e8d0dcd54d1bcfdc29203d011a797179/vgg_generated_48.i
    上面命令中路径里面的e8d0dcd54d1bcfdc29203d011a797179根据你实际报错提示为准,类似的缺这些文件的错误,去网上下对应的文件,同样的方法解决就行了。
    补齐了这些文件后, 然后再次点击Configure按钮,进行配置,应该就能正常配置了。

    (3)设置cmake编译参数

    在界面中将一下几个参数的取值设置好,具体参数和取值如下所示:
    CMAKE_BUILD_TYPE参数取值Release,如下图所示。

     OPENCV_EXTRA_MODULES_PATH参数取值/home/ubuntu1804/Downloads/opencv_contrib-3.2.0/modules,这个路径的前面几个文件夹用你的实际路径替代,如下图所示。

     CMAKE_INSTALL_PREFIX参数取值/usr/local,如下图所示。

     这里需要特别提一下,还需要将ENABLE_PRECOMPILED_HEADERS参数取值设成OFF。如果不关闭这个参数的话,后面编译会报错误/usr/include/c++/7/cstdlib:75:15:fatal error:stdlib.h:No such file or direct.

     上面这些编译参数都设置好后,就可以点击Generate按钮,生成makefile文件。

    4.编译和安装opencv

    切换到opencv-3.2.0/build目录,用make和make install编译和安装就行了。

    cd ~/Downloads/opencv_install/opencv-3.2.0/build/
    make
    sudo make install

    当你执行完上面命令的时候,并看到100%的时候,恭喜你!安装成功!

    转载请注明出处:http://www.cnblogs.com/hiram-zhang/
  • 相关阅读:
    NC外部统一流程管理平台方案
    Activiti 多个并发子流程的应用
    基于Activiti的流程应用开发平台JSAAS-WF V5.3
    整合Acitiviti在线流程设计器(Activiti-Modeler 5.18.0)
    基于Spring Security 的JSaaS应用的权限管理
    微信分享功能开发
    ORACLE schedule job设置
    存储过程清理N天前数据
    oracle函数trunc的使用
    往前往后推时间(排除工作日和节假日)
  • 原文地址:https://www.cnblogs.com/hiram-zhang/p/12013858.html
Copyright © 2011-2022 走看看