天天看點

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝

  • 為什麼需要opencv_contrib?
    • 下載下傳opencv與opencv_contrib
    • 安裝依賴項
    • 安裝cmake-gui并編譯
      • 在opencv-4.3.0下建立build
      • 開始cmake-gui編譯
      • 輸入源檔案位址和編譯位址并點選configure
      • 部分完成
      • 配置編譯選項第一步:在search欄搜尋path 添加opencv_contrib-4.3.0/modules的位址
      • 配置編譯的第二步:在search欄搜尋type 設定CMAKE_BUILD_TYPE 為release
      • 配置編譯第三步:在search欄搜尋world BUILD_OPENCV_WORLD打鈎
      • 點選generate 出現configuring and generating done
      • 在build目錄下根據自己是幾線程進行編譯
        • 出現錯誤一:fatal error: boostdesc_bgm.i: 沒有那個檔案或目錄
        • 解決方式:/home/csh/opencv/opencv_contrib-4.3.0/modules/xfeatures2d/src目錄下加上缺失的檔案
        • 清除編譯記錄之後再次編譯
        • 出現問題2:fatal error: features2d/test/test_detectors_regression.impl.hpp: 沒有那個檔案或目錄
        • 解決方式:把opemcv-4.3.0/modules/features2d 檔案夾拷貝到build目錄
        • 清除編譯記錄之後再次編譯
        • 安裝成功
      • 配置環境變量

為什麼需要opencv_contrib?

不安裝opencv_contrib将導緻一些問題:opencv2/face.hpp找不到;人臉識别的功能無法使用,單純從其他地方copy face.hpp将影響opencv實際的使用,是以還是老老實實地把opencv與opencv_contrib一起編譯!

下載下傳opencv與opencv_contrib

為了避免不必要的錯誤,保持opencv和opencv_contrib版本一緻

opencv4.3.0源碼位址

opencv4.3.0源碼位址

opencv_contrib4.3.0源碼位址

opencv_contrib4.3.0源碼位址

下載下傳速度太慢的話,可以在windows下用迅雷下載下傳!

對下載下傳好的檔案進行解壓

建立解壓檔案夾

sudo mkdir opencv
           

解壓

sudo tar -zxvf opencv-4.3.0.tar.gz -C /home/csh/opencv
sudo tar -zxvf opencv_contrib-4.3.0.tar.gz -C /home/csh/opencv
           
Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

安裝依賴項

sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
    libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
    libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
    gfortran openexr libatlas-base-dev python3-dev python3-numpy \
    libtbb2 libtbb-dev libdc1394-22-dev
           

安裝cmake-gui并編譯

sudo apt-get install cmake-gui
           

在opencv-4.3.0下建立build

sudo mkdir build
cd build
           

開始cmake-gui編譯

cmake-gui
           

輸入源檔案位址和編譯位址并點選configure

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?
Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

部分完成

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

配置編譯選項第一步:在search欄搜尋path 添加opencv_contrib-4.3.0/modules的位址

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

配置編譯的第二步:在search欄搜尋type 設定CMAKE_BUILD_TYPE 為release

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

配置編譯第三步:在search欄搜尋world BUILD_OPENCV_WORLD打鈎

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

點選generate 出現configuring and generating done

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

在build目錄下根據自己是幾線程進行編譯

nproc
make -j12
           

出現錯誤一:fatal error: boostdesc_bgm.i: 沒有那個檔案或目錄

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

解決方式:/home/csh/opencv/opencv_contrib-4.3.0/modules/xfeatures2d/src目錄下加上缺失的檔案

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

百度網盤位址

提取碼: 8k83

清除編譯記錄之後再次編譯

make clean
make -j12
           

出現問題2:fatal error: features2d/test/test_detectors_regression.impl.hpp: 沒有那個檔案或目錄

解決方式:把opemcv-4.3.0/modules/features2d 檔案夾拷貝到build目錄

清除編譯記錄之後再次編譯

make clean
make -j12
           

安裝成功

Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安裝為什麼需要opencv_contrib?

配置環境變量

sudo make install 
sudo gedit /etc/ld.so.conf.d/opencv.con
           

添加/usr/local/lib

繼續閱讀