1. 程式人生 > 實用技巧 >樹莓派4B安裝OPENCV4.0

樹莓派4B安裝OPENCV4.0

參考 : https://www.pyimagesearch.com/2018/09/26/install-opencv-4-on-your-raspberry-pi/

Step #1: Expand filesystem on your Raspberry Pi

sudo raspi-config



重啟

Step #2:Install OpenCV 4 dependencies on your Raspberry Pi

sudo apt update
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libcanberra-gtk*
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-dev

Step #3: Download OpenCV 4 for your Raspberry Pi

cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.0.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.0.0 opencv
mv opencv_contrib-4.0.0 opencv_contrib
cd ~/opencv
mkdir build
cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/lib \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D BUILD_TESTS=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=OFF ..
sudo nano /etc/dphys-swapfile
# CONF_SWAPSIZE=100
CONF_SWAPSIZE=2048
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
make -j4
sudo make install
sudo ldconfig

~/opencv_contrib/modules/xfeatures2d/src/boostdesc.cpp:673:20: fatal error: boostdesc_bgm.i: No such file or directory

解決方式:
採用的是原始碼編譯的方式,所以可以檢視 build 資料夾下的日誌檔案 CMakeDownloadLog.txt,在日誌檔案CMakeDownloadLog.txt中搜索 boostdesc_bgm.i 關鍵詞 (不是在資料夾中搜索),
發現這個檔案下載失敗了。日誌檔案裡就有它的下載地址,直接複製其下載地址到網頁可以看該到檔案的原始碼,直接拷貝原始碼並生存同名檔案,放在 opencv_contrib/modules/xfeatures2d/src/ 路徑下即可。

總共缺了以下幾個檔案,都需要拷貝:

boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i

sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE=100
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

最後,opencv安裝在/usr/lib下,在該目錄下,會生成一個python的資料夾。
我的python也在安裝在/usr/lib資料夾下,分別是python2.7,python3,python3.7。預設改為了python3.7。
將python目錄下的/cv2/python-3.7/cv2.cpython-37m-arm-linux-gnueabihf.so拷貝到/usr/lib/python3.7下,也就是python的安裝路徑。