网上找了很多opencv源码编译的文章,都不全,最近需要编译,整理了一个完整的,支持视频编解码,优化算法等。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake git pkg-config
其中cmake是一定要安装的,apt是最简单的安装方式,pkg-config一般系统会自带,确保有就行。
# 安装以来的编码库,包括图片和视频
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
极其重要的一步,如果缺少这个步骤无法生成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。
cd ~
git clone https://github.com/opencv/opencv.git
从这里下载最新的opencv版本,然后我们就会在home目录下看到opencv源代码文件了。
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%。
sudo make install
到第六步,已安装好了。
pkg-config opencv --libs
pkg-config opencv --modversion
sudo find / -iname "opencv"
head file address 头文件地址
/usr/include/opencv2/opencv.hpp
/usr/lib/x86_64-linux-gnu