vs2017 python 配置opencv,使用 CMake + VS2017 ( + Python 3) 配置和編譯 OpenCV 3.3

目前(2017.11)OpenCV最新版本為3.3.1,提供了vc14(VS2015)的運行庫,但未提供VS2017的運行庫。要想在VS2017中使用,可以用CMake + VS2017重新編譯源代碼。

同時,OpenCV官方也只提供了Python2.7版本可以調用的庫,若想在python 3.6.3 中使用,則需要重新為python3編譯。

若需要在Qt或C#中使用可參考本人其他博客。

Step 1 安裝相關軟件

軟件安裝部分比較簡單,沒有什么需要特別注意的,因此不再贅述。

本文使用的系統及軟件版本(總之都是目前最新的):

說明:

OpenCV可以在Git下載源代碼,或在sourceforge下載文件解壓,只使用其中的sources。

CMake版本最好是最新的否則不支持VS2017。

Visual Studio安裝時必須選擇安裝VC。

Step 2 使用CMake生成項目文件

打開cmake-gui,選取sources和build的路徑(如build_vc15),點擊configure,若路徑不存在會提示創建。

彈出對話框,選擇IDE及平台,這里選擇Visual Studio 15 2017 Win64,下方Use default native compilers 保持不變,點擊finish。

之后CMake會自動尋找C/C++編譯器,並根據硬件情況等進行自動配置,期間會盡可能地尋找存在的第三方庫,比如:Ant、clAmdBlas、clAmdFft、CUDA、EIGEN、GLib、GStreamer、MKL、LAPACK、VTK …… 如果有需要,找不到的可以手動指定路徑。過程中會自動下載ffmpeg的庫文件,因此不聯網可能報錯。下方會生成General configuration for OpenCV 3.3.1信息,這就是首次自動配置的結果。

完成后中間出現大量紅色配置,除一些路徑配置之外,其中需要注意的幾個選項:

BUILD_opencv_world :將.lib或者.dll文件統一整合進一個world文件中,方便使用。但若想只使用一部分模塊可不勾選以減少體積。生成動態鏈接庫dll需要勾選BUILD_SHARED_LIBS 。

ENABLE_CXX11 :支持C++11特性

OPENCV_EXTRA_MODULES_PATH :若使用opencv_contrib模塊,則在此處填寫解壓后的路徑,如 …\opencv_contrib-3.3.1\modules\

BUILD_EXAMPLES :項目文件中會包含sample工程,按需勾選。

INSTALL_C_EXAMPLES :將在install文件夾中編譯出一些示例程序(但都是.exe,因此想參考最好還是看sources中的源代碼)

不建議勾選:

BUILD_DOCS :生成文檔,需要安裝Doxygen,文檔可在官網查看。

BUILD_opencv_ts :一些單元測試代碼,參考文章1 。

INSTALL_TESTS :與開發無關,參考文章1 。

BUILD_opencv_saliency :文章2 中指出win10下不能勾選,但實際上並未發現此項。

文章1 中還提供了很多模塊及項目的解釋,可根據自己需要修改。

修改之后再次點擊configure進行配置,紅色會消失。若有錯誤提示,則檢查是否勾選了某項而未添加路徑。

完成后點擊Generate,開始生成項目文件。

Python 3與OpenCV 3

OpenCV官方只提供了Python 2.7可以使用的庫文件.pyd(其他語言寫成的可以被python調用的擴展),若想在python 3.6.3 中使用,則需要重新為python3編譯。

若之前安裝過python3或Anaconda3,並將路徑添加進系統環境變量中過,CMake將會自動尋找到它們的路徑。否則需要手動添加路徑。

配置時與python有關的:

opencv_python :若CMake找到python3路徑則會自動勾選。

BUILD_opencv_python3 :若CMake找到python3路徑則會自動勾選。

INSTALL_PYTHON_EXAMPLES :在 …\install\samples\native\python 生成python示例,經比較與sources文件夾下示例相同,可不勾選。

想生成在python 3 下用的.pyd,保證python3路徑填寫無誤,並勾選上面的前兩項即可。

Step 3 編譯

很多教程在此步驟會打開VS進行項目的編譯,事實上這里有更便捷的辦法,並且若生成Python庫必須這樣做。

在生成項目的文件夾(如build_vc15)空白處,按住shift 的同時點擊鼠標右鍵,點擊“在此處打開powershell窗口”,鍵入如下命令:

Release模式:

cmake.exe --build . --config Release --target INSTALL

Debug模式:文章2 中指出debug模式需要去掉 INSTALL_PYTHON_EXAMPLES、BUILD_opencv_python3 和BUILD_opencv_python2 這三項的勾選,經測試若勾選會編譯失敗。

cmake.exe --build . --config Debug --target INSTALL

等待編譯完成即可。

Step 4 保留build路徑下有用的部分

本人編譯完成后得到的build_vc15文件夾大小高達7.24G,但其中大部分都是不需要的文件,有用的文件夾主要有兩個:

\build_vc15\install (218 MB),它的目錄結構如下:

install

├─etc

│ ├─haarcascades

│ └─lbpcascades

├─include

│ ├─opencv

│ └─opencv2

├─samples

│ └─native

│ └─python

└─x64

└─vc15

├─bin

├─lib

└─samples

其中:

/etc:訓練好的分類器,可以用在人臉識別等程序中

/include:opencv需要的頭文件

/samples:python的例程(.py),若勾選INSTALL_PYTHON_EXAMPLES會生成

/x64/vc15: 64位vc15所需的動態運行庫(bin)、靜態運行庫(lib)、及例程(samples, .exe)

\build_vc15\lib\python3\Release (3.72 MB):

此文件夾下為可在python 3中調用的pyd文件:cv2.cp36-win_amd64.pyd

因此,只要保留上述兩個路徑的文件即可保證opencv正常使用,其中的示例其實也可以刪除。

Step 5 項目配置

項目配置隨便一搜索就有大量的文章教程,這里就不再贅述了,與本文相關的幾點:

如果在VS項目中使用opencv,可以參考文章1中屬性表的配置,避免了為每一個工程配置屬性。使用動態鏈接庫DLL的話,將\build_vc15\install\x64\vc15\bin 加到系統環境變量PATH里,可以方便調試。

如果在Python中使用opencv,將之前的cv2.cp36-win_amd64.pyd改名為cv2.pyd ,再拷貝到Python目錄,比如我這里使用anaconda路徑為:D:\Anaconda3\Lib\site-packages 即可。使用時 import cv2 。

參考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值