本文主要针对Ubuntu 17.04版本下,opencv进行源码编译安装。开发环境主要针对python 对 openCV库的调用。

  1. 安装 gcc cmake 编译环境
sudo apt-get install build-essential pkg-config cmake cmake-gui

本文提供两种源码编译方式,一种是cmake命令,另一种是通过图形界面的cmake-gui进行编译

  1. 该版本系统ubuntu已经自带python 2.7 和 python 3.5 ,需安装 pip 对python包进行管理
sudo apt-get install python-pip
sudo apt-get install python3-pip
  1. 配置pip 清华源加速包下载更新速度(寻找飞一样的感觉)
mkdir ~/.pip
vim ~/.pip/pip.conf
# 在pip.conf 中添加以下内容
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
  1. 安装python 以及 python3 下的数据分析包
pip install numpy scipy matplotlib scikit-image scikit-learn
pip3 install numpy scipy matplotlib scikit-image scikit-learn
在这一步时出现了问题,参考
  1. 安装其他依赖
# git : 版本控制
# gfortran fortran编译器
# yasm 汇编编译器
# ffmpeg 系统自带
sudo apt-get install checkinstall yasm gfortran git ffmpeg
sudo apt-get install libxvidcore4 libgtk-3-dev
sudo apt-get install libjpeg8-dev libjasper-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install libxine2-dev libv4l-dev
sudo apt-get install libqt4-dev libgtk2.0-dev libtbb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libvorbis-dev libxvidcore-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install x264 v4l-utils
  1. 可选依赖
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
  1. 下载并且安装OpenCV3
  • 安装git
    sudo apt-get install git
  • 下载OpenCV3
    git clone https://github.com/opencv/opencv.git
  • 下载OpenCV_Contrib
    git clone https://github.com/opencv/opencv_contrib.git

OpenCV 从 3.0 开始,就将一部分内容(比如 SIFT 等)分离到 opencv_contrib 中。因此,要完整安装 OpenCV,还需要安装 opencv_contrib。

  1. 命令编译
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
# 查看cpu 核心数
nproc
# 如果你有8个核心
# 切换至 build 目录中,执行下面命令,编译源码并链接生成相应的动态库以及可执行文件
make -j8
# 执行完成后,再执行以下命令,将生成的可执行文件以及动态库安装到指定的安装目录中。
sudo make install
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
  1. 用图形化工具配置生成 makefile
  • 切换至 opencv 目录,然后新建一个目录,用于存放 cmake 生成的配置文件。
    mkdir build
    cd build

  • 在你的图形界面的软件中找到 cmake-gui 打开

    然后在 Where is the source code 中添加 opencv 的目录路径,在 where to build the binaries 中添加刚才新建的 build 目录

  • 然后点击下面的Configure,选择 Unix Makefiles,然后选择 default ...。点击 OK,从而处理
    opencv目录下的 CMakeLists.txt 。并且在 Build 目录下生成 CMakeCache.txt 及 Makefile
    等相关文件。

  • Configure配置结束后,将会出现类似以下配置界面

以下是需要修改的部分

CMAKE_BUILD_TYPE 修改为 RELEASE
OPENCV_EXTRA_MODULES_PATH 设为 opencv_contrib 中的 modules 目录的路径(比如,/home/arvin/opencv_contrib/modules)
在 BUILD_EXAMPLES 的复选框里 打勾
在 INSTALL_C_EXAMPLES 的复选框里 打勾
在 INSTALL_PYTHON_EXAMPLES 的复选框里 打勾
在 WITH_FFMPEG 的复选框里 打勾
在 WITH_GTK 的复选框里 打勾
在 WITH_V4L 的复选框里 打勾
在 WITH_TIFF 的复选框里 打勾
在 WITH_PNG 的复选框里 打勾
在 WITH_JPEG 的复选框里 打勾
在 WITH_JASPER 的复选框里 打勾
取消 WITH_CUDA 的复选框里的勾
取消 WITH_CUFFT 的复选框里的勾
  • 然后点击Configure,应用刚才的修改并且将修改内容更新至 build 目录下的 CMakeCache.txt 中。然后点击 Generate,更新 Makefile。

  • 安装OpenCV3 及 OpenCV3 的额外包

    cd opencv/build/
    make -j8
    sudo make install
     sudo ldconfig
  1. 测试环境是否配置成功
# 在命令行打开你的python 解释器,输入以下命令
import cv2
print cv2.__version__
# 若看到类似以下输出,则表示配置成功
'3.3.0-dev'

Ubuntu 17.04版本下,opencv进行源码编译安装的更多相关文章

  1. windows10下如何进行源码编译安装tensorflow

    1.获取python3.5.x https://www.python.org/ftp/python/3.5.4/python-3.5.4-amd64.exe 2.安装python3.5.x,默认安装即 ...

  2. Linux下源码编译安装rpy2

    R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...

  3. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  4. [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程

    标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...

  5. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  6. linux源码编译安装OpenCV

    为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以 ...

  7. Ubuntu 环境 TensorFlow (最新版1.4) 源码编译、安装

    Ubuntu 环境 TensorFlow 源码编译安装 基于(Ubuntu 14.04LTS/Ubuntu 16.04LTS/) 一.编译环境 1) 安装 pip sudo apt-get insta ...

  8. CentOS 6.6 下源码编译安装MySQL 5.7.5

    版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# ...

  9. Linux 下源码编译安装 vim 8.1

    前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...

随机推荐

  1. XP下 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll 的解决办法

    最近在给手机启用黑阈服务的时候出现了无法定位程序输入点WSAPoll于动态链接库ws2_32.dll这个错误,上网查了一下是因为SDK Platform Tools版本过高不能兼容windows xp ...

  2. 单体 VS 微服务

    看图说话 群里发来一张图, 形象TM又生动: 异同之处 借此对比说说单体和微服务的异同之处: 一大坨的时候, 难泄, 具体表现为, 牵一发而动全身, 时而久之, 便秘/肠道不适/影响代谢/肤色变差/身 ...

  3. 【做题】CSA72G - MST and Rectangles——Borůvka&线段树

    原文链接 https://www.cnblogs.com/cly-none/p/CSA72G.html 题意:有一个\(n \times n\)的矩阵\(A\),\(m\)次操作,每次在\(A\)上三 ...

  4. call 和 apply方法解析

    ECAMScript 3给Function的原型定义了两个方法,它们是 `Function.prototype.call` 和 `Function. prototype.apply`.在实际开发中,特 ...

  5. VWmare设置挂载目录

     [root@localhost ~]# mkdir -p /mnt/cdrom  #首先创建一个挂载目录 [root@localhost ~]# mount -t auto /dev/cdrom / ...

  6. Cent OS 7 安装海峰、极点五笔输入法

    作为五笔输入法的玩家,输入不使用五笔比较难受:最近安装了 Cent OS 7 (带 GNOME. KDE桌面)系统,默认安装的是拼音输入法,这那受得了,赶紧上车找五笔输入法. 在此之前我查阅了百度得到 ...

  7. springboot缓存注解——@CacheEvict

    @CacheEvict:缓存清除 可以通过key指定清除的数据 如果不写默认参数的值 allEntries = true (是否删除该缓存名中所有数据,默认为false) beforeInvocati ...

  8. zoj3223

    其实这题不超时完全是因为串长度太小,如果串够长,一次匹配后都要往上跳,复杂度是n^2的. #include <iostream> #include <cstdio> #incl ...

  9. Python+turtle交互式绘图:可以用鼠标拖动的小海龟

    下面是我画海龟的过程: (1)打开python: 2.调用turtle库,先设置一些基础设置,与一个画龟的函数 from turtle import Screen,Turtle,mainloop cl ...

  10. 用python算圆周率及进度条提示

    (一)圆周率 : (1)圆周率是指平面上圆的周长与直径之比 (ratio of the circumference of a circle to the diameter) .用符号π表示.中国古代有 ...