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'