天天看点

ubuntu16.04 安装OpenCV并编译1、apt-get安装需要的依赖2、安装opencv需要的图片编码库、视频编码库等库3、安装python开发库4、下载opencv源码文件5、开始编译和安装6、生成编译文件到/usr/local7、ubuntu16.04查看opencv安装路径以及版本号

网上找了很多opencv源码编译的文章,都不全,最近需要编译,整理了一个完整的,支持视频编解码,优化算法等。

1、apt-get安装需要的依赖

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake git pkg-config
           

其中cmake是一定要安装的,apt是最简单的安装方式,pkg-config一般系统会自带,确保有就行。

2、安装opencv需要的图片编码库、视频编码库等库

# 安装以来的编码库,包括图片和视频
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev libjpeg-dev  libpng-dev libtiff5-dev

# 安装图形显示库
sudo apt-get install libgtk2.0-dev pkg-config

# 安装优化算法库atlas
sudo apt-get install libatlas-base-dev gfortran
           

在TX2上安装时仍缺少一些库,对于缺少库的情况可先尝试下面库,进行补充:

# 其它库
sudo apt-get install libtbb2  libjasper-dev libdc1394-22-dev libeigen3-dev libtheora-dev  libvorbis-dev sphinx-common libtbb-dev libavutil-dev libjasper1 
sudo apt-get install yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev  libopenexr-dev libgstreamer-plugins-base1.0-dev libavfilter-dev libavresample-dev

这里有必要说明一点,笔者在安装时有一个包libjasper-dev安装失败,解决办法如下:
$ sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
$ sudo apt-get update
$ sudo apt-get install libjasper1 libjasper-dev
           

3、安装python开发库

极其重要的一步,如果缺少这个步骤无法生成python的调用链接。

sudo apt-get install python2.7-dev python3.6-dev python-numpy python3-numpy
           

这里python2.7和3.6一起安装了,防止后面有人要安装2.7的版本。有些比较早有python3.6,可以换成python3.5。

4、下载opencv源码文件

cd ~ 
git clone https://github.com/opencv/opencv.git
           

从这里下载最新的opencv版本,然后我们就会在home目录下看到opencv源代码文件了。

5、开始编译和安装

cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D PYTHON_EXECUTABLE=python_path -D WITH_CUDA=OFF -D BUILD_EXAMPLES=ON ..
           

cmake后面的参数非常重要,决定了编译是否可以成功,其中比较重要的两个参数:PYTHON_EXECUTABLE WITH_CUDA,前者是告诉编译程序你的pyton解释器的路径,这个路径默认就是你在terminal输入which python弹出的路径,不管是python2.7还是3.5都是这个路径。

后面这个是说你编译的时候要不要用CUDA加速,反正我是没有编译成功,所以直接放弃了,如果你有CUDA配置好了,可以参考下面这条命令:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D PYTHON_EXECUTABLE=/usr/bin/python -D CUDA_GENERATION=Auto -D BUILD_EXAMPLES=ON ..

参数CMAKE_BUILD_TYPE CMAKE_INSTALL_PREFIX是说你的cmake的安装路径,cmake默认是安装在/usr/local下的。ok,然后enter。

先cmake一下。在这个过程中你可能会遇到一些问题,一般可以百度到解决方案,比如可能会遇到一个问题就是提示没有ippicv文件,说是文件校验码不对,这个时候莫慌,直接从网上搜索ippicv这个文件放到opencv/3rdparty/ippicv下即可,同时build文件夹下也复制一个(build文件夹和opencv下的目录结果一样的),然后在cmake就没有问题了。

接着我们make:

make -j8
           

直到进度100%。

6、生成编译文件到/usr/local

sudo make install
           

到第六步,已安装好了。

7、ubuntu16.04查看opencv安装路径以及版本号

7.1、查看linux下opencv安装库含路径

pkg-config opencv --libs
           

7.2、查看opencv安装版本

pkg-config opencv --modversion
           

7.3、查看opencv安装路径

sudo find / -iname "opencv"
           

7.4、ubuntu16.04 head files and libs

head file address 头文件地址

/usr/include/opencv2/opencv.hpp
           

7.5、Lib address opencv库地址

/usr/lib/x86_64-linux-gnu
           

继续阅读