Ubuntu 17.04系统下源码编译安装opencv的步骤详解

 更新时间:2017年08月23日 10:46:49   作者:jockerMe  
这篇文章主要给大家介绍了在Ubuntu 17.04系统下源码编译安装opencv的相关资料,文中将一步步的步骤介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。

前言

本文主要针对Ubuntu 17.04版本下,opencv进行源码编译安装。开发环境主要针对python 对 openCV库的调用。下面话不多说了,来一起看看详细的介绍:

一、安装 gcc cmake 编译环境

sudo apt-get install build-essential pkg-config cmake cmake-gui

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

该版本系统ubuntu已经自带python 2.7 和 python 3.5 ,需安装 pip 对python包进行管理

sudo apt-get install python-pip
sudo apt-get install python3-pip

配置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

二、安装python 以及 python3 下的数据分析包

pip install numpy scipy matplotlib scikit-image scikit-learn 
pip3 install numpy scipy matplotlib scikit-image scikit-learn

三、安装其他依赖

# 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

四、可选依赖

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

五、下载并且安装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。

命令编译

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

用图形化工具配置生成 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

测试环境是否配置成功

# 在命令行打开你的python 解释器,输入以下命令
import cv2 
print cv2.__version__
# 若看到类似以下输出,则表示配置成功
'3.3.0-dev'

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 在linux中设置tomcat开机自启动的方法

    在linux中设置tomcat开机自启动的方法

    由于各种各样的原因,服务器有重启的可能,这样tomcat就需要配置成开机自动启动,否则每次重启后就需要连远程手动启动tomcat,如果服务器被迫重启,而技术人员又不能及时运行tomcat,那么后果很严重,所以本文给大家介绍了在linux中设置tomcat开机自启动的方法
    2024-02-02
  • 关于Linux账号管理详解

    关于Linux账号管理详解

    本文主要针对Linux系统的账户管理方便的内容做了详细介绍,以及操作账户时的具体做法。
    2017-11-11
  • 在麒麟V10服务器上编译安装Storm的详细过程

    在麒麟V10服务器上编译安装Storm的详细过程

    这篇文章主要介绍了在麒麟V10服务器上编译安装Storm的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Linux 中清空或删除大文件内容的五种方法

    Linux 中清空或删除大文件内容的五种方法

    这篇文章主要介绍了Linux 中清空或删除大文件内容的五种方法的相关资料,需要的朋友可以参考下
    2016-12-12
  • linux中的7z命令参数说明

    linux中的7z命令参数说明

    Linux中的7z命令具备多样的参数来控制其功能,如添加文件、删除、提取、更新存档等。常用的命令包括a、d、e、x等,而开关如-o、-p、-m等则进一步定义了操作的细节,例如设置密码、输出目录和压缩方法。此命令强大且灵活,适合进行文件压缩和管理
    2024-09-09
  • 利用rsync自动备份 完全配置方法 增加了ip限制

    利用rsync自动备份 完全配置方法 增加了ip限制

    利用rsync自动备份 完全配置,一些细节也做到了,对于比较熟悉rsync的朋友应用,限制了ip相对来说安全增加了。
    2009-09-09
  • Centos 通过 Nginx 和 vsftpd 构建图片服务器的教程(图文)

    Centos 通过 Nginx 和 vsftpd 构建图片服务器的教程(图文)

    本篇文章主要介绍了Centos 通过 Nginx 和 vsftpd 构建图片服务器的教程(图文),具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • CentOS7.4下MySQL5.7.28二进制方式安装的方法步骤

    CentOS7.4下MySQL5.7.28二进制方式安装的方法步骤

    这篇文章主要介绍了CentOS7.4下MySQL5.7.28二进制方式安装的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Linux chage命令详解

    Linux chage命令详解

    chage命令用于密码实效管理,该是用来修改帐号和密码的有效期限,接下来通过本文给大家介绍Linux chage命令相关知识,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-01-01
  • Linux 安装二进制MySQL 及 破解MySQL密码的方法

    Linux 安装二进制MySQL 及 破解MySQL密码的方法

    这篇文章主要介绍了Linux 安装二进制MySQL 及 破解MySQL密码的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09

最新评论