1. 程式人生 > 實用技巧 >ubuntu18.04安裝opencv3.4.3+opencv_contrib(解決surf、sift等問題)

ubuntu18.04安裝opencv3.4.3+opencv_contrib(解決surf、sift等問題)

使用opencv3呼叫surf、sift時發現沒有安裝包報錯,查詢後需要安裝opencv_contrib,解釋一下opencv_contrib裡面有opencv3的擴充套件(比如surf、sift),也是opencv2和opencv3的區別.所以opencv3.x.x和opencv_contrib要重新都編譯一下。

這裡我安裝的openCV3.4.3,需要下載openCV3.4.3+opencv_contrib3.4.3

1、下載地址:

2、安裝依賴:

首先,更新軟體源,更新本地安裝包:

$ sudo apt-get install build-essential cmake git pkg-config
$ sudo apt-get install libjpeg8-dev
$ sudo apt-get install libtiff5-dev
$ sudo apt-get install libjasper-dev      //此處可能會報錯,百度吧,不難
$ sudo apt-get install libpng12-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install python-dev python3-dev

3、編譯

解壓opencv-3.4.3和opencv_contrib-3.4.3壓縮包並進入opencv-3.4.3資料夾:。

$ unzip opencv-3.4.3.zip
$ cd opencv-3.4.3

在opencv-3.4.3資料夾裡新建一個資料夾,命名release,用來存放cmake編譯時產生的臨時檔案。進入release:

$ mkdir release
$ cd release

接下來開始安裝前的配置檔案, 每次用到opencv有關的新東西都會重新補全編譯一次,接下來是我目前的操作。

設定cmake編譯引數,安裝目錄預設為/usr/local ,注意引數名、等號和引數值之間不能有空格,但每行末尾“\”之前有空格,引數值最後是兩個英文的點(注意!如果在root使用者下執行cmake命令,請將OPENCV_EXTRA_MODULES_PATH的值改為絕對路徑,如:/home/ubuntu/opencv_contrib-3.4.3/modules):

 $   sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX=/usr/local \
        -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \
        -D INSTALL_PYTHON_EXAMPLES=ON \
        -D INSTALL_C_EXAMPLES=ON \
        -D OPENCV_ENABLE_NONFREE:BOOL=ON \
        -D BUILD_opencv_world:BOOL=ON \
        -D BUILD_EXAMPLES=ON .. \

最漫長的開始了正式編譯:

在release資料夾中執行,編譯,以管理員身份,否則容易出錯

$ sudo make -j12   //以12執行緒編譯  具體數字看電腦執行緒最高配置,一般4,8,12

編譯完成後安裝

$ sudo make install

更新動態連結庫

$ sudo ldconfig

4、安裝完成後配置環境變數

將OPenCV的庫新增到路徑,從而可以讓系統找到

sudo gedit /etc/ld.so.conf.d/opencv.conf   //這裡用的gedit圖形介面編譯器

執行此命令後開啟的可能是一個空白文件,並更新動態連結庫

$  /usr/local/lib

配置bash

$ sudo gedit /etc/bash.bashrc

在檔案最後換行新增以下命令

$ PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
$ export PKG_CONFIG_PATH

儲存,執行以下使得配置生效

$ source /etc/bash.bashrc

最後更新

$ sudo updatedb

此處應該放禮花