在樹莓派安裝OpenCV一直是個頭大的問題,有些教學寫要編譯,有些寫pip就可以,基本上就是一些版本不同造成的差異。最近想把window環境開發的影線辨識程式移過來測試又從系統安裝從頭搞了一次,順手紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟,特別提到os位元是因為會影響tensorflow的安裝。必須有的python模組是opencv4.x、qt5、matplotlib。先把os灌好之後開機,進terminal,安裝流程如下:
更新軟體資訊和列表
sudo apt-get update
更新已安裝軟體為最新版,有詢問都自動yes。Bullseye安裝好開機進桌面右上角其實有個提醒可以更新所有軟體的icon,點那個就可以不用自己執行這兩個步驟。
sudo apt-get upgrade -y
安裝opencv基本包,版本隨便,最好指定舊一點的版本,否則會卡在『Building wheel for opencv-python (PEP 517) ... -』到天荒地老然後timeout,我選的是python3.9可以裝的最舊版本。
pip install opencv-python==3.4.10.37
安裝真正要用的cv版本完整包,btw python2終於在bullseye從預設軟體裡消失了,沒有必要再用pip3把模組裝到python3下了
pip install opencv-contrib-python==4.4.0.46
安裝opencv依賴的庫,最後兩個有些指引說要裝但我實測是已經被廢棄了無法安裝。
sudo apt-get install libatlas-base-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libhdf5-dev -y
sudo apt-get install libv4l-dev -y
sudo apt-get install libqtgui4 -y
sudo apt-get install libqt4-test -y
安裝qt5以及designer等開發工具,開發工具不是必須的但蠻好用的所以要裝。
sudo apt-get install python3-pyqt5 -y
sudo apt-get install qttools5-dev-tools -y
順便裝常用的模組,其中scipy、matpplotlib跟windows不一樣不能用pip安裝。
pip install beautifulsoup4
pip install dilb
pip install pyaudio
pip install pygame
pip install colorama
pip install pyvisa
pip install selenium
pip install virtualenv
pip install pyqt-5
pip install pyqt-led
sudo apt install python3-scipy python3-matplotlib
最後隨便一個IDE開個.py檔用以下程式碼測試cv2能不能正確被import,有時候opencv會發生裝完沒跳錯(通常是錯誤埋在一堆訊息裡),然後import會報錯的狀況。
import cv2
print(cv2.__version__)
有空再整理用隨身碟安裝系統還有tensorflow2的紀錄。
後記:測試完程式發現影像檔的處理效率爆差,查了很久結果是從pip安裝的標準wheel沒有支援libv4l,就算有灌也沒用,結果要自己編譯opencv然後啟動lbv4l的支援。