在樹莓派上安裝OpenCV
安裝前提
1.配置好樹莓派的Raspbian操作系統(tǒng)
使用的系統(tǒng)是2018年11月15日樹莓派官方發(fā)布的Raspbian-stretch操作系統(tǒng),官方下載鏈接

2.切換到國內(nèi)的apt-get下載源和pip下載源
防止下載速度過慢。
換源
sudo nano /etc/apt/sources.list
在第一行開頭加一個#,把下面的內(nèi)容拷貝到最后一行之后,如圖中的效果:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

先按鍵盤上的ctrl+o,再按回車保存,再按ctrl+x退出nano編輯器回到命令行界面。再輸入以下命令更新到清華大學鏡像源最新的軟件列表。
sudo apt-get update
給pip換源
sudo mkdir ~/.pip
cd .pip
sudo nano pip.conf
在打開的文件中輸入以下內(nèi)容:
[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+o,再按回車保存,再按ctrl+x退出nano編輯器回到命令行界面。
3.如果你有樹莓派官方的攝像頭Picamera,需按如下方法正確配置
如果沒有官方攝像頭,也不影響安裝
在命令行輸入以下命令,這個命令的意思是用nano編輯器打開modules這個文件:
sudo nano /etc/modules
在這個文件末尾添加一行
bcm2835-v4l2
也就是這個效果

先按鍵盤上的ctrl+o,再按回車保存,再按ctrl+x退出nano編輯器回到命令行界面。
輸入命令
vcgencmd get_camera
如果得到下面的結果,則證明攝像頭連接成功

可以輸入命令
raspistill -o image.jpg
調用攝像頭拍一張照片,命名為image.jpg,存儲在/pi/home路徑,也就是桌面左上角資源管理器一打開顯示的那個路徑。如果能看到攝像頭上紅燈亮,目錄里面有照片,則進一步說明攝像頭配置正確。
在樹莓派安裝運行在Python2上的OpenCV
1、安裝
打開樹莓派的命令行界面,兩個命令即可完成安裝。執(zhí)行第一條命令需要半個小時左右,請耐心等待。第二條命令執(zhí)行只需要幾秒鐘。
建議第一個命令用樹莓派桌面上自帶的命令行工具運行,而不要使用遠程ssh連接。因為執(zhí)行命令時間太長,中途如果ssh斷線的話無法得知是否已經(jīng)安裝完畢。
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv
2、在Python2上測試OpenCV
安裝好之后,在命令行中輸入python或者python2,回車
import cv2
如果出現(xiàn)下圖的結果,說明Python2環(huán)境下的OpenCV安裝成功。

也可以輸入
cv2.__version__
查看opencv版本號
為啥叫cv2而不叫opencv呢?這是因為OpenCV是基于C/C++開發(fā)的,有兩個版本,''cv”版本的API是C語言開發(fā)的,''cv2''版本的API是基于C++語言開發(fā)的,為了保持向后兼容性所以叫"cv2",但我們都知道cv2就是OpenCV本尊。
也可以在桌面命令行里輸入以下三個命令調用樹莓派攝像頭,把攝像頭捕捉到的畫面顯示在桌面上,按ctrl+c鍵退出。
git clone https://github.com/TommyZihao/opencvtest.git
cd opencvtest
python2 testopencv.py
在樹莓派安裝運行在Python3上的OpenCV
1、安裝numpy
打開命令行界面,輸入以下命令,安裝Python科學計算庫numpy
sudo pip3 install numpy
2、在樹莓派設置中把根目錄擴大到整個SD卡
命令行界面輸入命令,進入樹莓派配置界面。用上下鍵和左右鍵切換光標位置。
sudo raspi-config
第七行:Advanced Options
選擇Expand Filesystem,將根目錄擴展到這個SD卡,充分利用SD卡的存儲空間。如果不進行這一步,后續(xù)命令會出現(xiàn)卡死。退出設置界面,重啟樹莓派。
sudo reboot
3、安裝OpenCV所需的庫
挨個運行下面八條命令。共需要七分鐘(注意倒數(shù)第三條命令中要安裝四個-dev軟件包)。
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
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
4、下載OpenCV
在命令行輸入以下三條命令,下載兩個壓縮包到樹莓派的/home/pi/Downloads目錄下。第一個壓縮包86.8MB,第二個壓縮包54.5MB
cd /home/pi/Downloads
wget -O opencv-3.4.0.zip https://github.com/Itseez/opencv/archive/3.4.0.zip
wget -O opencv_contrib-3.4.0.zip https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip
如果下載速度很慢(比如每秒幾個KB):
方法:可以在電腦瀏覽器中輸入wget后面的鏈接下載壓縮包,再用Fillzilla或者U盤等方法把文件傳輸?shù)綐漭傻?strong>/home/pi/Downloads目錄下(一定不能錯)。
解壓這兩個壓縮包
cd /home/pi/Downloads
unzip opencv-3.4.0.zip
unzip opencv_contrib-3.4.0.zip
5、設置編譯參數(shù)
設置編譯參數(shù)
cd /home/pi/Downloads/opencv-3.4.0
mkdir build
cd build
設置CMAKE參數(shù),注意,下面這是一行命令(包括最后那倆點兒),需要耐心等待十五分鐘左右:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-3.4.0/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.5 PYTHON_INCLUDE_DIR=/usr/include/python3.5 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.5/site-packages/numpy/core/include ..
根據(jù)下圖判斷你是否配置成功了CMAKE。如果失敗,可能是因為兩個壓縮包的路徑?jīng)]有嚴格按照上文的要求。如果成功,就可以開始最重要的編譯了。

6、編譯
最后一步,也是最重要的一步:編譯
保證樹莓派有至少5G的存儲空間,建議本命令用樹莓派桌面上的命令行工具運行,而不要使用遠程ssh連接。因為執(zhí)行命令時間太長,中途如果ssh斷線的話無法得知是否已經(jīng)安裝完畢。
cd /home/pi/Downloads/opencv-3.4.0/build
make
編譯兩個小時之后,完成了40%
靜待五個小時的編譯。注意,在此期間,樹莓派要供電充足,不要運行其它任務,以免因為內(nèi)存不夠什么的幺蛾子報錯。
編譯失敗后,執(zhí)行下面命令重新編譯
make clean
make
make命令執(zhí)行完成之后,執(zhí)行下面的命令,執(zhí)行命令需要一分鐘:
sudo make install
7、在Python3上測試OpenCV
安裝好之后,在命令行中輸入python3,回車
import cv2
回車
cv2.__version__
回車
如果出現(xiàn)下圖的結果,說明Python3環(huán)境下的OpenCV安裝成功。
