如何在樹莓派4B上安裝OpenCV

opencv下載

首先在樹莓派的終端界面通過wegt命令下載(但下載速度可能很慢),終端輸入下列代碼進行下載

cd /home/pi/Downloads
wget https://github.com/Itseez/opencv/archive/3.1.0.zip
wget https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip

輸入以下命令解壓opencv壓縮包,也可以在Windows下解壓後直接通過傳輸工具傳輸到目前目錄下

cd /home/pi/Downloads
unzip opencv-3.1.0.zip
unzip opencv_contrib-3.1.0.zip

解壓後如下圖所示:
在這裏插入圖片描述

換源

在樹莓派的命令行界面輸入命令:

sudo nano /etc/apt/sources.list

清華鏡像源如下:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

在這裏插入圖片描述
注意:這裏需要把stretch改爲buster,換源後,輸入sudo apt-get install update更新下。

opencv3.1.0的安裝

安裝numpy

輸入以下命令安裝好numpy,這個是python的科學計算庫。

sudo pip3 install numpy

擴展目錄到SD卡

將樹莓派根目錄擴展到整個SD卡,代碼如下:

sudo raspi-config

首先選擇第7項,然後選擇Expand Filesystem,將根目錄擴展到這個SD卡,充分利用SD卡的存儲空間。如果不進行這一步,後續命令會出現卡死。
在這裏插入圖片描述
在這裏插入圖片描述
退出設置界面,重啓樹莓派。用df -h查看是否掛載成功
在這裏插入圖片描述

安裝OpenCV所需的庫

依次在終端輸入以下命令進行安裝

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 libv1l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y

在這裏插入圖片描述
總結:上面的庫必須安裝成功,否正後面的編譯會出現諸多問題,解決起來更麻煩。

配置編譯文件

進入opencv-3.1.0目錄下,新建一個build文件,後續所有的Cmake配置文件會存放在裏面

cd /home/pi/Downloads/opencv-3.1.0
mkdir build
cd build

輸入以下命令進行Cmake配置,Cmake後可輸出適配於樹莓派平臺的Makefile,後面編譯opencv。
注意,下面這是一行命令(包括最後那倆點兒),需要耐心等待十五分鐘左右,慢不要緊,不報錯就行:

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.1.0/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV1L=ON -D PYTHON3_EXECUTABLE=/usr/bin/python3.7 -D PYTHON_INCLUDE_DIR=/usr/include/python3.7 -D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include ..

在這裏插入圖片描述
命令解釋如下:

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.1.0/modules \#本行需根據自己安裝的路徑修改
-D BUILD_EXAMPLES=ON \
-D WITH_LIBV1L=ON \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.7 \
-D PYTHON_INCLUDE_DIR=/usr/include/python3.7 \
-D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
..

cmake成功後如下圖所示:
在這裏插入圖片描述

編譯

保證樹莓派有至少5G的存儲空間,這也是上面爲什麼要掛載到SD卡的原因, 輸入以下命令進行編譯:

make && sudo make install

在這裏插入圖片描述
等待慢慢編譯,第一次編譯至少需要5小時+,如果編譯過程中遇到問題,可參考下面的解決辦法進行解決.

遇到的問題及解決辦法

在編譯到80%左右時可能會出現openc_contrib 提示缺少boostdesc_bgm.i文件而出錯,這個是由於官方所給的那兩個包不全。
在這裏插入圖片描述
解決方法如下:
可以在我的百度雲盤裏下載然後將所有帶i結尾的文件全部都拷貝到 opencv_contrib/modules/xfeatures2d/src/ 路徑下即可。
在這裏插入圖片描述
然後繼續上面的編譯操作即可。
編譯到96%時,會出現fatal error: opencv2/xfeatures2d/cuda.hpp: 沒有那個文件或目錄的錯誤標誌
在這裏插入圖片描述
這個是由於之前在樹莓派的python2環境下安裝了opencv所致,解決方法如下:
將/home/pi/Downloads/opencv_contrib-3.1.0/modules/xfeatures2d/include/opencv2目錄下的xfeatures2d文件夾和xfeatures2d.hpp文件複製粘貼到/home/pi/Downloads/opencv-3.1.0/modules/stitching/include/opencv2目錄下即可解決,命令如下:

cp /home/pi/Downloads/opencv_contrib-3.1.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp /home/pi/Downloads/opencv-3.1.0/modules/stitching/include/opencv2 -r
cp /home/pi/Downloads/opencv_contrib-3.1.0/modules/xfeatures2d/include/opencv2/xfeatures2d /home/pi/Downloads/opencv-3.1.0/modules/stitching/include/opencv2 -r

在這裏插入圖片描述
繼續後面可能還會出現一個錯誤:
make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:63:modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] 錯誤 1
make[1]: *** [CMakeFiles/Makefile2:21669:modules/python3/CMakeFiles/opencv_python3.dir/all] 錯誤 2
make: *** [Makefile:163:all] 錯誤 2
在這裏插入圖片描述
解決方法如下:
首先找到/home/pi/Downloads/opencv-3.1.0/modules/python/src2 中的cv2.cpp文件,然後在第885行把char* 改成 const char* 即可解決,最後繼續上面的編譯操作即可。命令如下:

vim /home/pi/Downloads/opencv-3.1.0/modules/python/src2/cv2.cpp

在這裏插入圖片描述
最後,就能成功編譯到100%了,那麼就測試一下,命令如下:

python3
import cv2

可以看到,我這裏還是失敗,提示的是沒有cv2模塊:
在這裏插入圖片描述
解決辦法:
輸入sudo apt-get install安裝以下就可以了,成功後會出現下圖的效果:
在這裏插入圖片描述
最後再輸入命令測試一下:

python3
import cv2
cv2.__version__

在這裏插入圖片描述
至此,恭喜安裝完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章