樹莓派3b pyhon3.5 安裝opencv3.4
參考了百度文庫、CSDN的各位大佬的安裝教程,重複安裝了好多次都沒有成功。最後在同學的幫助下,在google上找到了解決方法。下面就是所安裝的具體過程。首先要確保有足夠的空間,樹莓派至少要需要16G的SD卡,16G的其實都勉強。
首先安裝依賴包,在進行軟體安裝之前要更新一下現有的軟體包:
sudo apt-get update
sudo apt-get upgrade #更新系統,慎重選擇
安裝cmake環境:
unzip的環境安裝:
sudo apt-get install unzip
安裝各種影象格式的包:
I/O視訊包的安裝過程:
I/O視訊包的安裝過程:
GTK開發庫環境的安裝:
sudo apt-get install libgtk2.0-dev
再安裝幾個依賴關係進一步優化OpenCV:
對已經安裝的開發環境進行確認(python):
在根目錄下新建一個叫opencv的資料夾,用來存放接下來要用的檔案。然後cd切換到這個目錄下。
cd~
mkdir opencv
cd opencv
從網上下載opencv 3.4的原始碼
wget https://github.com/opencv/opencv/archive/3.4.0.zip -O opencv-3.4.0.zip
unzip opencv-3.4.0.zip
還要下載OpenCV的contrib的儲存庫:
在這裡面opencv和opencv_contrib的版本一定要相同,否則會導致安裝失敗。
需要注意的是很多文章中是用git下載原始碼,opencv這個檔案比較大,如果通過下載原始碼可能需要的時間將會很長。利用用wget的下載壓縮包時間會更短點。如果要能事先在自己電腦上下好,然後拷到樹莓派上那就更好了。
接下來還要安裝python的虛擬環境管理軟體virtualenv和virtualenvwrapper
執行命令:
sudo pip3 install virtualenv virtualenvwrapper新建虛擬環境
配置virtualenvwrapper,將如下命令加入到加入到~/.bashrc的最後
#export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
執行:
source ~/.bashrc
virtualenv和virtualenvwrapper安裝配置完成後,新建一個名為cv的python3虛擬環境
mkvirtualenv -p /usr/bin/python3 cv
確認已經進入了這個虛擬環境,假如沒有進入,需要用workon進入虛擬環境程式碼如下:
workon cv
如果命令列的左側的括號內cv表示成功進入虛擬環境。
接下來的操作,就是在名為cv的虛擬環境中完成的,這個虛擬環境使用python3建立的。
在樹莓派3B+上安裝numpy
numpy是opencv的依賴包,要先在虛擬環境中安裝一下。
pip install numpy
編譯安裝OpenCV
接著使用CMake設定構建:
cd ~/opencv/opencv-3.4.0/
mkdir build
cd build
這裡面有個特別注意的地方,前面所下載的opencv中的contrib這個附加庫的目錄地址,需要將opencv額外的庫路徑指定給附加庫的這個牡蠣地址。如果出錯的話,則會導致安裝失敗。
下面就開始正式的編譯了。
make
如果採用下面的這個命令,耗費的時間可能更短,但有可能會導致編譯不穩定,有的內容沒有被編譯,如圖5.4所示是樹莓派在編譯的過程:
圖5.4編譯的過程圖
make -j4
按理來說呼叫4個核心來編譯,時間應該會大大縮短。但是據說這樣不是太穩定,容易出錯。直接用make命令單核心編譯的,花了差不多4個小時,據說用4核心,差不多一個半小時。
樹莓派比較慢,編譯兩天,以為樹莓派老是在編譯的過程中宕機。在計算機虛擬機器上編譯最多一個小時,由此可以看出樹莓派跟真正的計算機比起來還是差遠了。
在漫長的編譯等待100%完成後,終於可以安裝了
安裝opencv
sudo make install
sudo ldconfig
為虛擬環境引用類庫
因為這是python3+虛擬環境,將編譯好的so檔案,連結到虛擬環境中。
cd ~/.virtualenvs/opencv/lib/python3.5/site-packages/
如果usr下的local資料夾下的lib庫檔案件下面的python3.5的目錄下的site這個資料夾裡面如果沒有cv2.so的這個檔案,意味這次安裝opencv失敗,需要重新再來一次,再來一到兩天。
安裝完成之後,檢查所安裝的版本號
python
>>> import cv2s
>>> print(cv2.__version__)
3.4.0
若能夠成功顯示opencv的版本號,則代表opencv安裝成功[10]。
具體我應該參考了下面的兩個教程:
https://medium.com/@debugvn/installing-opencv-3-3-0-on-ubuntu-16-04-lts-7db376f93961
https://www.python36.com/how-to-install-opencv340-on-ubuntu1604/