最新樹莓派系統opencv3的安裝
近期把吃灰的樹莓派3B找了出來,想在上面運行opencv3,安裝編譯的過程當中走了不少彎路,參考網上衆多大佬的筆記,發現要麼不齊全,要麼教程老舊,不適用於新版系統,故寫下這篇博文以供你們參考,但願能幫助你們少走彎路。python
1、配置樹莓派
系統安裝和配置
關於樹莓派系統的安裝和初期配置網上教程不少,這裏再也不贅述。
本文配置環境爲:
git
- 樹莓派3B
- 系統Raspberry Pi OS(2020-05-27)
- 32G儲存卡
更換更新源和下載源
sudo nano /etc/apt/sources.list
在第一行前輸入 # 註釋系統默認源
在最後一行輸入如下代碼更換爲中科大鏡像
github
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
按ctrl+x進行保存退出bash
更換pip下載源
命令行輸入:網絡
sudo mkdir ~/.pip cd .pip sudo nano pip.conf
在打開的文件中輸入如下代碼ssh
[global] timeout = 10 index-url = http://mirrors.aliyun.com/pypi/simple/ extra-index-url= http://pypi.douban.com/simple/ [install] trusted-host= mirrors.aliyun.com pypi.douban.com
按下ctrl+x保存退出函數
更新軟件系統
sudo apt-get update sudo apt-get upgrade
擴展根目錄空間
在控制終端輸入工具
sudo raspi-config
經過鍵盤上下鍵控制,選擇7.Advanced Options進入,而後選擇Expand Filesystem,將根目錄擴展到整個SD卡,充分利用SD卡的存儲空間。若是不進行這一步,後續命令會出現卡死。
設置完成後退出設置界面,重啓樹莓派。
優化
sudo reboot
設置SWAP
OpenCV安裝編譯過程當中數據吞吐較大,爲了防止系統卡死,須要設置合適的交換空間。ui
sudo nano /etc/dphys-swapfile
將 CONF_SWAPSIZE 的值修改爲你想要的大小。 通常在內存小於2G的狀況下,交換分區應爲內存的2倍!
而後,從新啓動 dphys-swapfile 文件服務:
sudo /etc/init.d/dphys-swapfile restart
輸入free -h
查看是否設置成功
2、安裝運行在python2上的OpenCV
打開終端,輸入如下兩個命令便可完成安裝(第一條可能要花半小時左右完成)
sudo apt-get install libopencv-dev sudo apt-get install python-opencv
安裝完成,輸入cv2.__version__
便可查看OpenCV版本號
3、安裝python3下的OpenCV
一、安裝Python科學計算庫numpy
sudo pip3 install numpy
二、安裝OpenCV所需的庫
// 安裝build-essential、cmake、git和pkg-config(cmake開發人員工具) sudo apt-get install build-essential git cmake pkg-config -y //經常使用圖像工具包安裝 sudo apt-get install libjpeg8-dev -y sudo apt-get install libtiff5-dev -y sudo apt-get install libjasper-dev -y sudo apt-get install libpng12-dev -y //經常使用視頻庫安裝 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y //GTk2.0安裝 sudo apt-get install libgtk2.0-dev -y //安裝OpenCV數值優化函數包 sudo apt-get install libatlas-base-dev gfortran -y
3.下載opencv3.4.3和opencv_contrib3.4.3包
爲了方便後期管理,咱們把文件下載安裝到Downloads文件夾
cd Downloads
而後利用wget命令從網絡下載opencv3.4.3和opencv_contrib3.4.3
wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip
解壓這兩個文件
unzip opencv-3.4.3.zip unzip opencv_contrib-3.4.3.zip
4.設置CMAKE編譯參數
爲了正確編譯OpenCV,須要對cmake參數進行設置。
①在opencv-3.4.3文件夾下建立build文件夾以存放編譯臨時文件
cd ~/Downloads/opencv-3.4.3 mkdir build cd build
②設置cmake編譯參數
//下述參數中,INSTALL_PYTHON_EXAMPLES、INSTALL_CXX_EXAMPLES、BUILD_EXAMPLES分別是安裝python例程、安裝C例程以及編譯例程,這三個能夠不加,這樣編譯速度快一點,根據須要自行選擇。 sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-3.4.3/modules \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_CXX_EXAMPLES=ON \ -D BUILD_EXAMPLES=ON ..
③配置成功的界面以下圖所示
5.備份build文件夾
下一步咱們會利用build文件夾裏的文件進行make,一旦失敗還須要從新進行cmake參數設置。爲了節省時間,對build文件夾進行備份。
cd .. cp -r build ./build1
6.編譯OpenCV3
進入build文件夾進行編譯,這一步耗時較長(大約四五個小時)。建議在樹莓派環境下進行,防止ssh斷開致使編譯失敗。同時樹莓派要保證供電充足,且最好不要進行其餘操做。
cd ~/Downloads/opencv-3.4.3/build //使用最多4線程編譯,加快編譯速度。同時保存編譯信息到make.log,方便離線查看編譯進度 sudo make -j4 2>&1 | tee make.log
若是看到進度編譯到100%,那麼說明編譯安裝成功。
若是遇到中途出錯或者臨時斷電等問題,直接輸入以上命令繼續編譯便可。若是想從新進行編譯,能夠把路徑跳轉到咱們上面備份的build1文件夾進行編譯,也能夠輸入如下命令從新編譯
make clean sudo make -j4 2>&1 | tee make.log
7.安裝OpenCV3
編譯完成後便可進行最後一步——安裝。
//安裝OpenCV3 sudo make install //安裝動態連接庫 sudo ldconfig
8.恢復SWAP空間
安裝完成後須要把swap恢復系統默認,而後從新啓動服務。不然大量的數據交換會致使內存卡損壞。
sudo nano /etc/dphys-swapfile CONF_SWAPSIZE = 100 sudo /etc/init.d/dphys-swapfile restart
4、配置OpenCV
1.配置opencv.conf
爲了保證個別語言的編譯要求,須要對opencv.conf文件進行配置
sudo nano /etc/ld.so.conf.d/opencv.conf
在打開的文件最後兩行鍵入如下內容
//其中,/usr/local爲默認安裝路徑,根據實際狀況進行修改便可 /usr/local/lib ?
更新動態連接
sudo ldconfig
2.修改bash.bashrc 配置文件
//打開bash.bashrc sudo nano /etc/bash.bashrc //最後兩行加入如下代碼 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH //重啓樹莓派 sudo reboot
3.檢查是否安裝完成
python3
import cv2
cv2.__version__
若是出現如圖所示的結果,則說明安裝成功
也能夠經過運行如下代碼生成一個圖像來檢測OpenCV是否工做正常
touch test.py nano test.py import cv2 import numpy as np cv2.namedWindow("gray") img = np.zeros((512,512),np.uint8)#生成一張空的灰度圖像 cv2.line(img,(0,0),(511,511),255,5)#繪製一條白色直線 cv2.imshow("gray",img)#顯示圖像 #循環等待,按q鍵退出 while True: key=cv2.waitKey(1) if key==ord("q"): break cv2.destoryWindow("gray") python3 test.py
最終的結果應該是生成一個空的灰度圖像,圖像中間有一條白色直線。以下圖所示
搞定!ENJOY!!
5、編譯中可能會出現的問題(沒出現忽略)
一、編譯過程當中可能會報錯**:fctal error: ImfChromaticities.h: 沒有那個文件或目錄。**
輸入如下代碼能夠解決
sudo apt-get install libopenexr-dev
2.編譯18%左右可能會報錯fatal error: opencv2/xfeatures2d/cuda.hpp: 沒有那個文件或目錄。
這是因爲咱們以前安裝了python2環境下的opencv致使的,複製兩個文件便可解決:
將/home/pi/Downloads/opencv_contrib-3.4.3/modules/xfeatures2d/include/opencv2目錄下的xfeatures2d文件夾和xfeatures2d.hpp文件複製粘貼到/home/pi/Downloads/opencv-3.4.3/modules/stitching/include/opencv2目錄下便可
文件也能夠從連接中下載,而後拷貝進正確的路徑便可:連接:https://share.weiyun.com/tMPeaqGP 密碼:ye4ezy
3.在編譯到81%左右的時候,可能會報錯Built target opencv_tracking [Makefile:163 : all] 錯誤2(或者其餘相似的錯誤)
這主要是由於下載的包不完整致使的,把缺乏的文件拷貝到:home/pi/Downloads/opencv_contrib-3.4.3/modules/xfeatures2d/src/下便可
缺乏的文件爲:
- boostdesc_bgm.i
- boostdesc_bgm_bi.i
- boostdesc_bgm_hd.i
- boostdesc_binboost_064.i
- …
缺失文件下載連接:https://share.weiyun.com/6gaKPUXf 密碼:c6myk6
本文最終安裝的OpenCV版本爲OpenCV3.4.3。
如需安裝最新的OpenCV4,可參考博文:https://blog.csdn.net/weixin_43287964/article/details/101696036
本人嘗試在樹莓派上安裝OpenCV3.4.3的過程當中遇到了好多坑,參考網上衆多大佬的筆記後前先後後嘗試了四五天才完成,很是感謝各位大佬的幫助。爲了讓和我同樣剛剛接觸OpenCV的你能順利的安裝opencv,故寫下這篇博客,此篇博客中如有錯誤,歡迎你們指正交流!!!
碼字不易,如需轉載請註明出處,謝謝!!!