为了学习slam,在ubuntu16.04系统上安装opencv3.2.0以及对应的opencv_contrib3.2.0

安装过程


下载

Github上下载有的时候比较慢,我这里分享了OpenCV3.2.0+OpenCV_contrib3.2.0的下载链接(包括一些编译过程中需要下载的文件)

链接:Download 提取码:8jaw

安装opencv依赖库

  1. $ sudo apt-get install build-essential
  2. $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
  3. $ sudo apt-get -install libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev

事实上,OpenCV的依赖库很多,缺失某些项编译的时候会出错或者影响某些功能。OpenCV会在cmake的时候检查依赖项是否安装,如果出错,按照提示安装依赖项即可。

解压opencv-3.2.0文件

  1. $ unzip opencv-3.2.0.zip //我这里当前文件路径为 /Downloads

解压opencv_contrib-3.2.0.tar.gz

  1. $ tar -zxvf opencv_contrib-3.2.0.tar.gz -C ./opencv-3.2.0/

编译

  1. $ cd opencv-3.2.0/
  2. $ mkdir build
  3. $ cd build
  4. $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/ai/downloads/opencv-3.2.0/opencv_contrib-3.2.0/modules/ -D WITH_TBB=ON -D BUILD_SHARED_LIBS=OFF -D WITH_OPENMP=OFF -D ENABLE_PRECOMPILED_HEADERS=OFF ..

安装

  1. $ sudo make -j8 //多线程
  2. $ sudo make install

配置环境

  1. $ sudo gedit /etc/ld.so.conf.d/opencv.conf
  2. # 在最后一行添加 /usr/local/lib
  3. $ sudo gedit /etc/bash.bashrc
  4. # 在最后一行中添加:
  5. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv320/lib/pkgconfig
  6. export PKG_CONFIG_PATH
  7. $ sudo ldconfig
  8. $ sudo cp /usr/local/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig

最后安装成功

$ pkg-config --modversion opencv

遇到的问题


1. 下载ippicv_linux_20151201.tgz超时

解决方案:手动下载

如果终端下载过慢,或者出现超时。上面的下载包里有这个压缩文件,把这个压缩文件放入/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/夹中。(严格来说,是放入错误提示的文件路径)

2. 缺少gtk+-3.0

No package 'gtk+-3.0' found

解决方案:

  1. $ sudo apt-get install libgtk-3-dev

3. 缺少依赖项

  1. -- No package 'gstreamer-base-1.0' found
  2. -- No package 'gstreamer-video-1.0' found
  3. -- No package 'gstreamer-app-1.0' found
  4. -- No package 'gstreamer-riff-1.0' found
  5. -- No package 'gstreamer-pbutils-1.0' found

解决方案:

  1. $ sudo apt-get install libgstreamer0.10-dev
  2. $ sudo apt-get install libgstreamer-plugins-base0.10-dev
  3. $ sudo apt-get install libgstreamer1.0-dev
  4. $ sudo apt-get install libgstreamer-plugins-base1.0-dev
  5. $ sudo apt-get install libgstreamer1.0-dev
  6. $ sudo apt-get install libgstreamer-plugins-base0.10-dev
  7. $ sudo apt-get install libgstreamer0.10-dev
  8. $ sudo apt-get install libgstreamer-plugins-base1.0-dev

如果下载这些依赖这些包的时候,出现无法定位软件包,应该是系统的源的有问题,可以换其他源,我后面改用阿里的源可以成功下载依赖项。

3. 缺少libavresample、libgphoto2包

  1. -- No package 'libavresample' found
  2. -- No package 'libgphoto2' found

解决方案:

  1. $ sudo apt-get install libavresample-dev
  2. $ sudo apt-get install libgphoto2-dev

4. 缺少libavresample包

  1. -- No package 'libavresample' found

解决方案:

  1. $ sudo apt-get install libavresample-dev
  2. $ sudo apt-get install libgphoto2-dev

5. 找不到OpenBLAS include

  1. -- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
  2. -- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off

解决方案:

  1. $ sudo apt-get install libopenblas-dev

6. 找不到Doxygen include

-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

解决方案:

  1. $ sudo apt-get install doxygen

7. 找不到JNI

-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)

解决方案:

详见参考[1]

8. make的时候缺失opencv_lapack.h

解决方案:

  1. $ sudo apt-get install liblapacke-dev checkinstall

9.提示no package opencv found

pkg-config --modversion opencv 的时候提示找不到opencv包

解决方案:

配置环境时缺少了一行代码:

  1. $ sudo cp /usr/local/opencv320/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig

10.出现Makefile:160: recipe for target 'all' failed

解决方案:

opencv_contrib的路径有问题,在编译时候最好指定opencv_contrib的文件路径,否则会在make的时候出现makefile找不到的问题。

参考

[1] https://blog.csdn.net/weixin_41896508/article/details/80795239

[2] https://blog.csdn.net/qq_29229045/article/details/78527391

Ubuntu16.04+OpenCV3.2.0+Opencv_Contrib3.2.0安装的更多相关文章

  1. [环境配置]Ubuntu 16.04 源码编译安装OpenCV-3.2.0+OpenCV_contrib-3.2.0及产生的问题

    1.OpenCV-3.2.0+OpenCV_contrib-3.2.0编译安装过程 1)下载官方要求的依赖包 GCC 4.4.x or later CMake 2.6 or higher Git GT ...

  2. ubuntu系统---ubuntu16.04 + virtualenv + py2.7 + tf1.5.0 + keras2.2.4 + opencv2.4.9 +Numpy1.14

    ubuntu16.04 + virtualenv + py2.7 + tf1.5.0 + keras2.2.4 + opencv2.4.9 +Numpy1.14 @https://www.liaoxu ...

  3. opencv3.2.0+opencv_contrib-3.2.0+vs2015开发配置

    在sift算法实现中,出现了这个问题 出现问题:\vs2015opencv\vs2015\project\mode\mode\sift算法1.cpp(3): fatal error C1083: 无法 ...

  4. Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  5. Ubuntu16.04下iTop4412环境搭建+Android4.0.3编译

    系统:Ubuntu16.04.02(优麒麟) 安装库文件和JDK 使用cd 命令,进入解压出来的“Android_JDK” -->“jdk6”文件夹,运行脚本文件 “install-sun-ja ...

  6. mac10.12.6系统使用cmake安装opencv3.3.0+opencv_contrib-3.3.0

    brew与cmake brew安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ins ...

  7. 达尔稳usb转RJ45的接口转换器(usb2.0接口)在ubuntu16.04中驱动(r8152)编译安装与使用

    淘宝买了usb转RJ45的接口转换器:https://detail.tmall.com/item.htm?id=524808012954&ali_refid=a3_430582_1006:11 ...

  8. Ubuntu16.04+Opencv3.3的安装教程

    需要准备的基本材料(请先看完整个安装过程再进行下面的操作): 一.到Opecv-Release的Github项目上下载最新的Opencv版本,注意---基于python2.7,可选用 OpenCV2. ...

  9. Ubuntu16.04多个版本GCC编译器的安装和切换

    这几天在配置交叉编译ARM开发板的linux内核的过程中碰到了很多问题,其中包括了GCC版本太高等问题,由此我打算安装其他老的版本给我的Ubuntu16.04.实验过程如下: 官网的教程是最牛逼的,先 ...

随机推荐

  1. Redis学习笔记(五) 基本命令:Hash操作

    原文链接:http://doc.redisfans.com/hash/index.html 学习前先明确一下概念,这里我们把Redis的key称作key(键),把数据结构hash中的key称为fiel ...

  2. Spring《四-一》解决自动装配的问题

    自动化装配使得研发减少了响应的指配工作,但是使得响应的检查难以完成. 解决方法: simple模式: <bean autowire="autodetect" dependen ...

  3. web.config配置文件使用总结

    我们在开发web系统的时候,使用web.config进行配置是司空见惯的,那么web.confg到底是什么呢?什么时候使用web.config呢?有几种使用web.config方式呢? 如果不太明白的 ...

  4. 安卓input框获取焦点时,底部按钮会顶上去的解决方法

    var h = document.body.scrollHeight;window.onresize = function(){ if (document.body.scrollHeight < ...

  5. JAVA在线观看视频教程完整版

    今天给大家介绍一下JAVA在线观看视频教程完整版,我们知道Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语 ...

  6. 『转』How to Think About Your Career

    开始工作的伊始,逐渐转载及阅读Medium上知名华裔设计师Julie Zhuo的文章,这是她在medium上的介绍:Product design VP @ Facebook. Lover of foo ...

  7. java的-D命令行参数 mvn -D参数

    java的-D命令行参数 我们会用mvn启动一个应用,如下的命令行: MAVEN_OPTS="-XX:PermSize=256m -XX:MaxPermSize=512m" mvn ...

  8. ZBrush中SnakeHook蛇钩笔刷介绍

    不同笔刷用着不同的作用,绘画出来的效果也是千姿百态,各有千秋,有些笔刷在使用的时候可以替代,但有些笔刷是无法替代,不可超越的,比如ZBrush®中给我们提供的,SnakeHook笔刷,该笔刷在模型表面 ...

  9. luogu P1354 房间最短路问题 计算几何_Floyd_线段交

    第一次写计算几何,还是很开心的吧(虽然题目好水qaq) 暴力枚举端点,暴力连边即可 用线段交判一下是否可行. Code: #include <cstdio> #include <al ...

  10. elementUI 上传.csv文件不成功 导入功能

    前言:element上传excel文件   导入功能 目标:点击导入,将excel表格的数据填充到表格. <el-upload class="upload-demo" :ac ...