注:安装环境不一致的请自行进行相应代码更改。
Step 1: 更新树莓派的系统与内核
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo shutdown -r now
更新内核时需要一定的sd卡空间,所以首先检查树莓派的sd卡是否扩展,否则可能会报“No space left on device”错误,即存储空间不足。
耗时:5min
Step 2: 安装依赖库
下载编译工具与Git
$ sudo apt-get install build-essential git cmake pkg-config
通过git可以获取opencv的源码包,需要cmake来进行编译
耗时:30s
安装用于图片加载及解析的包
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
这里面有的系统的源已经进行了更新,可能会产生下载警告。
耗时:27s
安装视频IO包
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
耗时:80s
安装GTK2.0
$ sudo apt-get install libgtk2.0-dev
耗时:3min
安装opencv优化支持工具
$ sudo apt-get install libatlas-base-dev gfortran
耗时:1min
安装解压缩工具 10s
$ sudo apt-get install unzip
耗时:10s
安装python2.7的头文件
$ sudo apt-get install python2.7-dev
耗时:30s
安装python包管理工具pip
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
耗时: 1min
安装生成cv2.so必需的numpy
$ sudo pip install numpy
耗时:18min
Step 3: 下载并解压资源
通过github下载并解压opencv源码
$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip
$ unzip opencv.zip
通过github下载opencv的contrib库
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip
$ unzip opencv_contrib.zip
contrib库中包括了面部识别和文本探测,还包括文本识别、边缘检测器、深度图处理、光线流和追踪算法等
Step 4: 本地编译安装opencv
创建build文件夹
$ cd ~/opencv-3.2.0/
$ mkdir build
$ cd build
cmake配置
$cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules \
-D BUILD_EXAMPLES=ON ..
耗时:5min
利用PPi3的四核编译源码
$ make -j4
耗时:90min
多核编译可能会出错,失败后可以使用单核编译,不过比较慢
$ make clean
$ make
安装
$ sudo make install
关联动态库
$ sudo ldconfig
Step 5: python使用opencv
如果想在python中使用opencv的话,需要把opencv编译的cv2.so和原始的cv.py或者cv.cpp拷贝到python的site-packages路径下面
$ sudo cp /home/pi/opencv-3.2.0/build/lib/cv2.so /usr/local/lib/python2.7/site-packages/
$ sudo cp /home/pi/opencv-3.2.0/modules/python/src2/cv2.cpp /usr/local/lib/python2.7/site-packages/
Step 6: 测试
$ python
>>> import cv2
>>> print cv2.__version__
3.2.0