Opencv 編譯

轉載 https://www.cnblogs.com/xinxue/p/5766756.htmlhtml

 OpenCV 3.4 版本,聖誕節前發佈了,該版本新增了一種去掉視頻背景的算法,dnn 模塊的進一步改進,速度的提高,以及一些新添加的 tutorials 等等。

      

  本文以 Win10  64 位 爲例,介紹用 cmake 編譯 OpenCV 的過程 (若是是 32 位系統,則對應 32位 的 cmake 和 Qt 軟件)

1  下載準備
1.1  Win10
  Windows 10 專業版,64 位

  注:安裝 VS 2015 時,要求操做系統 Win7 Service Pack 1 以上

1.2  VS or Qt
  選擇一: Visual Studio 2015,專業版,下載連接  https://www.visualstudio.com/downloads/

  選擇二: VS2015 + Qt 5.9.3,對應 qt-opensource-windows-x86-5.9.3.exe,下載地址 https://www1.qt.io/download-open-source/#section-2

  注:雖然 Qt 是開源的,可是在下載時,須要自行註冊帳號,而且遵照一些開源的協議

1.3  cmake
  下載 cmake-3.10.0-win64-x64.zip 壓縮包,到 /bin 目錄下,點擊 cmake-gui 運行。

  注:根據操做系統的不一樣,選擇相應的版本,cmake 下載頁  https://cmake.org/download/

1.4  OpenCV
  首先,選擇 「Source code」,下載 GitHub 中的 OpenCV 源碼

  GitHub 連接  https://github.com/opencv/opencv/releases

  

   其次,按照相似的步驟,在 GitHub 中下載 opencv_contrib 的源碼壓縮包

  GitHub 連接 https://github.com/opencv/opencv_contrib/releases/tag/3.4.0

   

  最後,將兩個 zip 包解壓縮,等待編譯。

 

2  cmake 編譯
  注意: cmake 在編譯過程當中,會自動下載一些文件,例如 opencv_ffmpeg.dll 等,所以須要保持網絡暢通。

2.1 運行
  在解壓後的 cmake 目錄中,找到 /bin 下的 cmake-gui.exe,點擊運行,以下所示

  

  其中, source 路徑指向解壓後的 「opencv-master」,build 路徑可指向本身建的一個 「build」 文件夾

  注: 此處誤將 source 路徑指向了 "opencv-master/modules",致使 Configure 時出現以下錯誤

    

2.2  配置
2.2.1  opencv-maste

  設置好路徑後,點擊左下角的 Configure 按鈕,彈出窗口,以下所示

  

  點擊 Finish 按鈕,繼續,此時主界面的 Configure 按鈕變爲 Stop,表示配置進行中

  注意:如遇到問題,先檢查錯誤信息;而後,點擊 File -> Delete Cache,退出 cmake-gui,並將 build 文件夾內的內容清空,再重複步驟 2.12.2,

等 Configure 依次結束後,若是 cmake 的主界面仍有紅色區域,則再次點擊 Configure 進行配置,直到紅色區域徹底消失。

             

  下圖是 Configure 完成後的界面,紅色消失,只剩白色的區域

    

2.2.2  opencv_contrib-master

  找到 Name 下的 OPENCV_EXTRA_MODULES_PATH,爲其設置 opencv_contrib-master 的路徑 ,精確到 /modules 目錄

     

  再次點擊 Configure 進行配置,可能須要 Configure 兩三次以後,紅色區域才能徹底消失。

  最後,點擊 Generate,出現 「Generating done」 則意味着 cmake 的工做結束了。

2.3  VS 生成   
2.3.1  Python 問題

    由於電腦中裝了 Python 3.6.2,結果在下面步驟的 Debug 模式下,生成時出現了以下錯誤:

    

    這是由於安裝 python 時,並不會安裝 debug 版本,因而,回到 python 安裝界面,選擇 debug 版本

    

  如此,則可在 debug 模式下,順利生成相應的庫文件。  

2.3.2  生成庫

    進入到生成的 build 目錄下,找到 OpenCV.sln,使用 VS 2015 打開。

    找到 INSTALL,分別在 Debug 和 Release 模式下,根據系統選擇 x86 或 x64,右鍵 -> 生成

      

  將 install 目錄下生成的全部文件,拷貝到須要進行 OpenCV 配置的文件中 ( 32 位操做系統的會生成 x86 文件夾)

    

 

3  VS 下的配置
  1)  環境變量

      計算機 -> 屬性 -> 高級系統設置 -> 環境變量,編輯系統變量裏的 path 變量,爲其添加變量值 D:\opencv\build\x64\vc14\bin

    

  2)  頭文件和庫文件

      頭文件: D:\opencv\build\include

      庫文件: D:\opencv\build\x64\vc14\lib

     

  3)  依賴項

    生成的 lib 庫,格式爲 「opencv_modulename_version_d.lib」,帶 "_d" 的對應 Debug 模式,不帶的對應 Release 模式。

    可根據程序的須要,添加相應的靜態庫。 例如,人臉識別時,用到 face 模塊,可在依賴項中,添加 opencv_face330d.lib

     

 

4  Qt 下的配置
 1)  環境變量

  與 VS 的配置同樣,添加 path 變量值 D:\opencv\build\x64\vc14\bin;

  另外,不要忘記添加 Qt 的 path 變量值 D:\Qt\Qt5.9.3\5.9.3\msvc2015\bin;

 2)  頭文件和庫文件

  以簡單的讀圖程序爲例,須要在新建的 Qt 工程配置文件中,添加以下代碼:

LIBS += -L$$PWD/../../opencv/build/x64/vc14/lib/ -lopencv_highgui340d \
        -lopencv_core340d \
        -lopencv_imgproc340d  \
        -lopencv_imgcodecs340d

INCLUDEPATH += $$PWD/../../opencv/build/include
 可根據具體的須要,適當添加新的庫文件,好比,用於人臉識別的 opencv_face340d,深度神經網絡 opencv_dnn340d 等等。

    配置完成,盡情享受 OpenCV 的世界吧 ^_^

 

參考資料
  vs12 vs2013 下opencv3.0配置擴展模塊   Icoding_F2014

 

更新記錄
    2017年05月09日: 升級爲 Win 64 位系統,CMake 3.8.1,OpenCV 3.2,Qt 5.8,結果在  「2.3  2)  INSTALL 生成」 處卡了,生成不成功。

    2017年10月12日: 升級爲 Win10 64 位系統,CMake 3.10.0,OpenCV 3.3,Qt 5.9.1,生成並配置成功。

    2017年12月26日: 升級爲 OpenCV 3.4,Qt 5.9.3,生成並配置成功。
相關文章
相關標籤/搜索