Opencv介紹
OpenCV是一個基於BSD許可(開源)發行的跨平台計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
下載的opencv安裝包是基本包,而opencv_contrib是有額外模塊的包,比如人臉識別中的face模塊。源碼安裝時,opencv_contrib只能在opencv配置編譯時一起帶上,不能在opencv編譯安裝后再裝。
安裝依賴包
sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
下載源碼包
1、 利用命令下載
git clone -b 4.1.0 --recursive https://github.com/opencv/opencv.git git clone -b 4.1.0 --recursive https://github.com/opencv/opencv_contrib.git
但是這樣一般下載比較慢
2、 先下載到電腦本地,再傳到樹莓派上
opencv官方下載地址
opencv_contrib官方下載地址
這里我下載的是opencv 4.3.0版本的
opencv_contrib也是下載對應的4.3.0版本
下載完后通過文件傳輸工具或者U盤傳輸到樹莓派中
這里通過文件傳輸工具FileZilla傳輸
配置Cmake
進入到opencv后,新建個build目錄用來編譯
cd /home/pi/Downloads/opencv-4.3.0 mkdir build cd build
配置Cmake
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=../../opencv_contrib-4.3.0/modules \ -D BUILD_EXAMPLES=ON \ -D WITH_LIBV4L=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_BUILD_TYPE=RELEASE \ 代表編譯類型為發行版本
CMAKE_INSTALL_PREFIX=/usr/local \ 安裝路徑
INSTALL_C_EXAMPLES=ON \ C demo
INSTALL_PYTHON_EXAMPLES=ON \ Python demo
OPENCV_EXTRA_MODULES_PATH=…/…/opencv_contrib-4.3.0/modules \ OpenCV_Contrib路徑,路徑以你下載的open_contrib包為准
BUILD_EXAMPLES=ON \ 編譯demo
WITH_LIBV4L=ON \ 開啟Video for Linux
PYTHON3_EXECUTABLE=/usr/bin/python3.7 \ Python3路徑
PYTHON_INCLUDE_DIR=/usr/include/python3.7 \ Python3 include文件夾
PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \ Python3庫
PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \ Python3 Numpy安裝路徑
… 表示Makefile在上層目錄
配置時間為幾分鍾
編譯
配置成功后進行編譯
sudo make -j4
-j4 表示可4個線程同時進行,速度較快,但需要根據樹莓派配置來決定,如果太大,可能會導致在編譯時死機。
編譯過程會持續幾個小時,非常之久。
!注意:即使是官網的源碼包,在編譯過程中也可能會出現錯誤,出現錯誤后根據錯誤提示通過搜索引擎查找解決辦法,因為是官網包,所以遇到了問題也會有很多人遇到過。在這里我遇到了兩個問題,列舉一下幫助遇到相同問題的后人。
1、fatal error: boostdesc_bgm.i: No such file or directory
SHOUT OUT TO 安裝OpenCV時提示缺少boostdesc_bgm.i文件的問題解決方案
百度雲鏈接:https://pan.baidu.com/s/1BeYF8kqEZLAJYQj-MvxpmA
提取碼:e1wc
下載所有文件復制到**opencv_contrib/modules/xfeatures2d/src/**下
繼續執行
sudo make -j4
2、fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory
SHOUT OUT TO github issue熱心網友
cp /home/pi/Downloads/opencv-4.3.0/modules/features2d /home/pi/Downloads/opencv-4.3.0/build
安裝
sudo make install
安裝過程比較快,在幾分鍾之內。
檢測是否安裝成功
python3
進入python3的交互模式
import cv2
沒有錯誤提示說明opencv安裝成功
from cv2 imort face
沒有錯誤提示說明opencv_contrib安裝成功
卸載
cd /home/pi/Downloads/opencv-4.3.0/build
進入到opencv下的build
sudo make uninstall
卸載opencv及opencv_contrib
cd /usr sudo find . -name "*opencv*" | xargs sudo rm -rf
刪除系統相關文件
xargs表示將管道前的結果作為管道后的參數
STOUT OUT TO