使用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、下載地址:
openCV3.4.3 鏈接: https://pan.baidu.com/s/1TQrbEE_uXEYDJ_0Diy4pqA 密碼: tqlq
opencv_contrib3.4.3 鏈接:https://pan.baidu.com/s/1odBh9xx9m_IwbMO_FAkuOw 提取碼:ot9u
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
此處應該放禮花💐,tiu dang 安裝完成可以使用了
自己找個例程試一試吧