【OpenCV】編譯opencv_contrib模塊

opencv從2.x到3.x源碼結構變動非常大,很多功能不完善、性能不穩定或測試不完全的模塊,都被放在了extra_modules(opencv_contrib)裏面。官方給出的解釋是:所有新模塊都應單獨開發,並首先在opencv_contrib中發佈 ,當模塊成熟並獲得普及時,再將其移至opencv主庫中,這時開發團隊也將爲該模塊提供後續支持。

最近要用到一些特徵點檢測算法,3.0以後這些算法都移到了xfeacture2d模塊中,下面記錄一下編譯過程。


1. 編譯OpenCV

下載源碼,按照常規思路編譯即可,基本步驟:

  • cmake設置opencv源碼目錄、編譯目錄及安裝目錄(CMAKE_INSTALL_PREFIX);
  • “Configure”->“Generate”,選擇編譯器;
  • 編譯源碼。

在這裏插入圖片描述

2. 編譯opencv_contrib模塊

(1)下載並解壓opencv_contrib源碼:
在這裏插入圖片描述

(2)在opencv的cmake中設置OPENCV_EXTRA_MODULES_PATH爲opencv_contrib源碼路徑:

在這裏插入圖片描述
(3)“Configure”後選擇需要編譯的模塊:

“Configure”後會出現opencv_contrib中模塊的編譯選項,選擇需要編譯的模塊,並點擊Configure和Generate。我這裏編譯了xfeatures2d模塊,把他勾上:

在這裏插入圖片描述
(4)編譯

Generate完後打開工程直接編譯即可。

3. 常見錯誤處理

3.1 找不到文件

報錯:無法打開包括文件:“vgg_generated_120.i”:No such file or directory。

在這裏插入圖片描述
可以直接下載這些文件放到對應目錄(xx/opencv_contrib-3.x.x/modules/xfeatures2d/src)即可,這裏給出地址:

3.2 無法引用頭文件

編譯時會出現一些錯誤,編譯xfeatures2d模塊時下面的4個文件會出錯,都是頭文件引用路徑出現問題,最簡單的解決方案是把它改成絕對路徑,不嫌麻煩的話也可以把這些頭文件複製到工程include目錄下或把頭文件路徑添加到CMakeLists.txt中。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章