ububtu1804下opencv3.4.10+opencv_contrib3.4.10編譯安裝及問題解決


opencv_contrib提供了一些比較新或者說還不夠成熟的函數(或者有專利),因為不夠穩定所以沒有加入到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

 

然后要下載你要的版本的opencv和opencv_contrib.zip文件,注意版本要對應。下載地址:https://github.com/opencv/opencv/tags和https://github.com/opencv/opencv_contrib/tags

然后將兩個文件解壓,將opencv_contrib移動到opencv目錄下,並在opencv文件創建build文件夾。

然后在終端輸入:

cd build
cmake -DOPENCV_ENABLE_NONFREE:BOOL=ON -DOPENCV_EXTRA_MOUDLES_PATH=絕對路徑/opencv_contrib-3.4.10/modules .. 
make
-j8
sudo make install

其中 -DOPENCV_ENABLE_NONFREE:BOOL=ON 語句可以生成SURF等有專利的算法的庫,有了這些庫就可以使用SURF等算法,不加這句進行cmake會出現錯誤:

This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'

make操作時會報錯,如果只想編譯部分文件,或者有的文件編譯報錯可以使用如下命令,跳過特定文件的編譯。

cmake -DOPENCV_EXTRA_MODULES_PATH=絕對路徑/opencv_contrib-3.4.10/modules -DBUILD_opencv_legacy=OFF ..

 如果沒有錯誤,編譯完成后再進行安裝,在終端輸入:

sudo make install

 

 

錯誤1:boostdesc_bgm.i:沒有那個文件或目錄

解決方法:下載boostdesc_bgm.i等文件,並將其移動到opencv_contrib_3.4.10/modules/xfeatures2d/src目錄下

下載鏈接:https://pan.baidu.com/s/1DmwL2IG2ZzL4nNhmKkqrIA  提取碼:vtld 

 

錯誤2:opencv2/xfeatures2d/cuda.hpp:沒有那個文件或目錄

解決方法:將opencv_contrid-3.4.10/modules/xfeatures2d/include/opencv2下的xfeatures2d文件夾和xfeatures2d.hpp拷貝到

opencv-3.4.10/modules/stitching/include/opencv2目錄下,和stitching文件夾並列。

錯誤3:opencv2/xfeatures2d.hpp:沒有那個文件或目錄

解決方法:將opencv_contrid-3.4.10/modules/xfeatures2d/include/opencv2下的xfeatures2d文件夾和xfeatures2d.hpp拷貝到

opencv-3.4.10/opencv_contrib-3.4.10/modules/sfm/include/opencv2目錄下,和sfm文件夾和sfm.hpp並列。

 重新make即可,最后不要忘記install。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM