由于在Raspbian上沒(méi)有OpenCV的預(yù)安裝包用apt也裝不了陶因,所以如果要在樹莓上用OpenCV那只能蛋疼地去下載本地編譯安裝了。
本文是一個(gè)極其蛋疼的經(jīng)歷的記錄垂蜗,如果你沒(méi)有什么耐性嘗試那么請(qǐng)直接飄過(guò)楷扬。
我使用的是Raspberry PI 3+ 解幽,首先要更換源,推薦使用(清華大學(xué))[https://mirror.tuna.tsinghua.edu.cn/help/raspbian/]的烘苹,其它的源可能會(huì)由于cmake版本過(guò)低導(dǎo)致無(wú)辦法編譯躲株。
打開(kāi)/etc/apt/sources.list
文件修改源
pi@raspberrypi ~ $ sudo nano /etc/apt/sources.list
改使用以下的源:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
注:OpenCV for Python3的安裝辦法請(qǐng)參考:Raspbian Stretch: Install OpenCV 3 + Python on your Raspberry Pi 在編譯過(guò)程中會(huì)出現(xiàn)一些C++的警告,直接無(wú)視镣衡。且不要安裝到虛環(huán)境徘溢,因?yàn)槠渌某绦蚪?jīng)常需要使用
sudo
一但安裝到虛環(huán)境整個(gè)系統(tǒng)反而會(huì)變得不可用。所以不建議使用Python的虛環(huán)境捆探。
更新系統(tǒng)安裝包
首先更新系統(tǒng)包。
sudo apt-get update
sudo apt-get upgrade
#sudo rpi-update
#(can be skipped, but recommended) (don't do it if you will use the RPI cam as recommended by official RPI Website)
sudo reboot now
然后是下載各種依賴包站粟,我將它們?nèi)繉懙揭黄穑?/p>
sudo apt-get purge wolfram-engine --assume-yes
sudo apt-get purge libreoffice* --assume-yes
sudo apt-get clean --assume-yes
sudo apt-get autoremove --assume-yes
sudo apt-get update && sudo apt-get upgrade --assume-yes
sudo apt-get install build-essential cmake pkg-config --assume-yes
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev --assume-yes
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev --assume-yes
sudo apt-get install libxvidcore-dev libx264-dev --assume-yes
sudo apt-get install libgtk2.0-dev libgtk-3-dev --assume-yes
sudo apt-get install libcanberra-gtk* --assume-yes
sudo apt-get install libatlas-base-dev gfortran --assume-yes
sudo apt-get install python2.7-dev python3-dev --assume-yes
以下是自動(dòng)下載OpenCV
cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.3.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.3.zip
unzip opencv_contrib.zip
修改數(shù)據(jù)交互區(qū)
將數(shù)據(jù)交互區(qū)增大,先打開(kāi)dphys-swapfile文件:
sudo nano /etc/dphys-swapfile
然后將CONF_SWAPSIZE
改為:
CONF_SWAPSIZE=1024
執(zhí)行以下指令重啟服務(wù):
$ sudo /etc/init.d/dphys-swapfile stop && sudo /etc/init.d/dphys-swapfile start
編譯
安裝依賴完成之后就可以進(jìn)行編譯配置黍图。
cd ~/opencv-3.4.3/build
#mkdir build
#cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D WITH_GTK=ON \
-D BUILD_TESTS=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF ..
配置完成后就可以開(kāi)始編譯了,執(zhí)行以下腳本大約需要二小時(shí)左右奴烙,執(zhí)行:
$ sudo make -j4
完成編譯后直接安裝
$ sudo make install && sudo ldconfig
自動(dòng)裝載攝像頭驅(qū)動(dòng)
安裝完OpenCV2后是不會(huì)自動(dòng)裝載攝像頭的助被,需要執(zhí)行以下的指令才可以:
sudo modprobe bcm2835-v4l2
如果要在系統(tǒng)加載時(shí)載入可以在 /etc/modules
文件內(nèi)加入這個(gè)驅(qū)動(dòng)
sudo nano /etc/modules
加入:
bcm2835-v4l2
完成后記得將交互區(qū)大小改回100保存后重啟。
重新進(jìn)入 python 命令行切诀,測(cè)試CV2是否安裝成功:
import cv2
cv2.__version__