运行环境为 Ubuntu Mate 16.04,经实测此教程也可完全适用Raspbian。
一、安装依赖环境
1、打开终端(ctrl + alt + t),首先进行一些必要的更新:
// 软件源更新
sudo apt-get update
// 升级本地所有安装包,最新系统可以不升级,版本过高反而需要降级才能安装
sudo apt-get upgrade
// 升级树莓派固件,固件比较新或者是Ubuntu则不用执行
sudo rpi-update
2、安装用以构建OpenCV的工具
// 安装build-essential、cmake、git和pkg-config
sudo apt-get install build-essential cmake git pkg-config
3、安装常用图片工具包及视频工具包
// 安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev
// 安装tif格式图像工具包
sudo apt-get install libtiff5-dev
// 安装JPEG-2000图像工具包
sudo apt-get install libjasper-dev
// 安装png图像工具包
sudo apt-get install libpng12-dev
// 安装视频 I/O 包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
// 安装 gtk2.0,这一步比较麻烦,如果一直无法安装成功可尝试将apt-get切换为国内镜像源
sudo apt-get install libgtk2.0-dev
// 安装优化函数包
sudo apt-get install libatlas-base-dev gfortran
二、编译安装OpenCV
1、下载OpenCV源码并解压
// 下载OpenCV
wget -O opencv-3.4.0.zip https://github.com/Itseez/opencv/archive/3.4.0.zip
// 解压OpenCV
unzip opencv-3.4.0.zip
2、cd至该目录,并创建release文件夹以存放cmake临时文件
// 进入源码文件夹
cd opencv-3.4.0
// 新建release文件夹
mkdir release
// 进入release文件夹
cd release
3、设置cmake编译参数
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D PYTHON_DEFAULT_EXECUTABLE=/usr/local/bin/python3 \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D PYTHON3_EXCUTABLE=/usr/local/bin/python3 \
-D PYTHON3_INCLUDE_DIR=/usr/local/include/python3.6m \
-D PYTHON3_LIBRARY=/usr/local/lib/libpython3.6m.so \
-D PYTHON_NUMPY_PATH=/usr/local/lib/python3.6/site-packages/ ..
以上参数的一些说明:
"CMAKE_BUILD_TYPE"为编译方式;
"CMAKE_INSTALL_PREFIX"为安装目录;
"OPENCV_EXTRA_MODULES_PATH"为加载额外模块;
"INSTALL_PYTHON_EXAMPLES"为安装官方python例程,可不加;
"BUILD_EXAMPLES"为编译例程,可不加。
一些路径的查找:
这是很重要的部分,由于各种操作或系统原因,部分路径可能会因人而异,可用以下命令查找。
#PYTHON_INCLUDE_DIR
from distutils.sysconfig import get_python_inc
print(get_python_inc())
#PYTHON_PACKAGES_PATH
from distutils.sysconfig import get_python_lib
print(get_python_lib())
#PYTHON_EXECUTABLE
$(which python3)
#CMAKE_INSTALL_PREFIX
import sys
print(sys.prefix)
#PYTHON_NUMPY_PATH
import numpy
print numpy.__file__
cmake完成后,将生成编译报告,仔细检查是否正确链接了 Python3 ,若没有,删除 release 文件夹,重做第 2、3 步。
4、正式编译安装
这里可能会等待很长时间。其中make语句后的 -j2 即使用两个内核进行编译,树莓派共有四个内核,但是笔者使用 -j4 编译OpenCV每次都会卡死,因此建议使用双核编译,然后就去喝杯咖啡吧,喝完咖啡,嗯估计也没有结束mmp。
// 编译
sudo make -j2
// 安装
sudo make install
// 更新动态链接库
sudo ldconfig
5、验证
如果make过程没有报错的话,至此就大功告成了,可以在终端中测试是否顺利安装并链接。
python3
>>> import cv2
>>> cv2.__version__
如果输出 '3.4.0',则安装顺利完成。
网友评论