注:安裝環境不一致的請自行進行相應代碼更改。
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