在opencv3以上環境中使用nonfree等模塊,使用surf等,3.4.3爲例(草稿)

 

 

https://opencv.org/releases/page/3/原版壓縮包,分zip和windows的exe。

https://github.com/opencv/opencv/releases/tag/3.4.3  也是一個下載途徑

https://github.com/opencv/opencv_contrib/releases/tag/3.4.3  contrib,也分版本的,要對應吧

(contrib的一個總目錄https://github.com/opencv/opencv_contrib/releases

 

linux的安裝方法(參考的是別人的3.2.2的過程)

1. sudo apt-get install build-essential

2. sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

3. sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev  

cmake(下過了,連接不找了,何況他這是linux的cmake)

build建在源文件路徑下

有專門的參數指定額外的庫

CMAKE_INSTALL_PREFIX安裝路徑

OPENCV_EXTRA_MODULES_PATH模塊路徑

在終端執行以下兩步:

第一步:
cd opencv-3.2.0/build

第二步:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv320 -D OPENCV_EXTRA_MODULES_PATH=/home/jason/opencv_contrib-3.2.0/modules/ ..

如果不安裝opencv_contrib模塊,則第二步的命令爲:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv320

cmake過程中可能遇到的問題:

如果網絡不好,出現ippicv_linux_20151201.tgz無法在終端下載的情況,則可以先單獨下載ippicv_linux_20151201.tgz之後,把其移動到終端所提示的路徑(終端會提示該路徑找不到文件),如路徑/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/

移動的時候,可以另外打開一個終端操作:
sudo mv ippicv_linux_20151201.tgz /opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e

如果同樣有其他類似的文件無法下載,方法同上。
 

在終端執行以下兩步:

第1步:
sudo make

第2步:
sudo make install

linux下這樣算安裝完成

 

windows版本的cmake過程

 

1.用cmake-gui,選中opencv的根目錄,選中build目錄。

2.點configure,3.4.3+vs2015+default(失敗,別人有個3.0.0-vs2013的,opencv本身是vs不相關的吧??或者說默認的編譯選項太多了?但是我不知道怎麼選啊)

核心問題是編不過去,是找到別人的參考,還是自己根據錯誤把配置選項全刪了?

關掉WITH_CUDA,居然成功了,看來就是CUDA問題。generate也成功了

 

這個表裏不止有選項打鉤,還有變量,在其中找到Name爲OPENCVEXTRAMODULESPATH的參數,然後把它的Value設置爲opencvcontrib的路徑

要精細到modules路徑

 

3.generate生成,生成

 

最後,會得到一個OpenCV.sln?

用VS

打開D:/VS2015/opencv-3.4.0/build/目錄下的OpenCV.sln

 

編譯debug版本庫:在“解決方案'OpenCV'(3.0.0有141個項目?3.4.3我只有30個項目?)”上面點擊右鍵-->重新生成解決方案

實測報錯

http://tieba.baidu.com/p/5682396502

我的3.4.2怎麼報4.0的錯誤?

 

錯了,第二次是139個項目,之前可能是路徑設定再source下的build,可能和其他配置有衝突,互相改寫了?現改名mybuild,好像也不是,選項裏那些build,都是根據輸出路徑自動生成的,修改之後一樣的錯誤

再勾上nonfree,確實是141個項目

 

項目設置是否對?debug,win32?

 

3.找到CMakeTargets中的INSTALL,然後右鍵選擇“僅限於項目”-->“僅生成INSTALL”,然後就在D:\opencv3\opencv\mybuild\install中發現了許多東東。

什麼時候設置?生成之後?

然後是自己項目的引用(這裏的vc12限於VS2013,VS2015應該是vc14

  1. VC++目錄-->包含目錄,添加:
    D:\opencv3\opencv\mybuild\install\include

  2. VC++目錄-->庫目錄,添加:
    D:\opencv3\opencv\mybuild\install\x86\vc12\lib
    D:\opencv3\opencv\mybuild\install\x86\vc12\staticlib

  3. 鏈接器-->輸入-->附加依賴項,添加opencv_xxxxxd.lib(這個見仁見智,不同版本名稱不同,總之就是openc庫目錄的所有)

 

額外的:

surf什麼的屬於收費模塊,應該勾選如下選項?這是否與前邊的錯誤有關?(按理說這是編譯之後使用纔可能出現的錯誤,目前卡在了編譯)但是勾選之後這一步都過不去了,不勾選,好歹是能出sln,頂多是sln編譯不過,

 

 

發佈了183 篇原創文章 · 獲贊 376 · 訪問量 116萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章