使用 CMake 和 Visual Studio 在 Windows 上為 Python2 構建和編譯 opencv 3.1.0-dev

構建和編譯 opencv 3.1.0-dev 以獲取非免費模組的訪問許可權對某些人來說尤其令人頭疼,特別是在 Windows 機器上。與 Ubuntu 不同,為 Windows 設定 opencv 需要一些時間,並且在構建和編譯之前需要先安裝幾個 pf 依賴項。

在進一步執行任何步驟之前,你應該下載和安裝的程式是:

  1. Python 2.7.xPython 3.xx
  2. CMake 的

如果你要下載 Python for Win32,即使你使用的是 64 位計算機,也應該下載 CMake for Win32

建議下載 32 位程式,因為某些 Python 庫僅支援 32 位計算機,因此要遠離麻煩,只需安裝 32 位版本的所有內容即可

  1. Visual Studio 社群 2013

  2. Numpy for Python2.7 Win32

安裝完所有上述依賴項後,重新啟動 PC,然後你就可以繼續下一步了。

第 2 步:

如果你不喜歡閱讀的人,可以觀看本教程 。本教程將從這裡開始到本文件的末尾。

你需要從 github 獲取 opencvopencv_contrib 。你可以在以下位置找到: ****

  1. OpenCV 的
  2. opencv_contrib

建立一個名為 opencv-3.1.0 的目錄,在此導演中,你將建立另外兩個目錄,一個用於構建,另一個用於。提取後,你將把兩個下載的 zip 檔案放在 sources 檔案中。

例如,你的 opencv-3.1.0 目錄位於 C 驅動器中,因此你將有三個路徑:

  1. C:\opencv-3.1.0
  2. C:\opencv-3.1.0\build
  3. C:\opencv-3.1.0\sources

第三個目錄將包含兩個路徑:

  1. C:\opencv-3.1.0\sources\opencv
  2. C:\opencv-3.1.0\sources\opencv_contrib

現在已經完成了準備工作。讓我們做一些有用的東西

第 3 步:

執行 CMake 作為管理員。將出現這樣的視窗,你必須提供兩個目錄,一個用於源,另一個用於編譯 opencv。下面的圖片可以比文字更好地幫助你。

StackOverflow 文件

接下來單擊 configure ,你將被提升為提供生成器; 即編譯器; 對於 opencv。你必須提供位於 Microsoft Visual Studio 2013 中的 cl.exe。單擊指定本機生成器,將出現如下所示的彈出視窗,

路徑將是這樣的:C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe。提供 C 和 C++欄位的路徑。單擊完成並等待配置完成。如果你正確執行上述所有步驟,則應該出現零錯誤。

StackOverflow 文件

在 CMake 完成配置後,你將看到 CMake 視窗中出現的新專案以紅色突出顯示。它將是這樣的:

StackOverflow 文件

單擊小方框,檢查所需的構建。搜尋 OPENCV_EXTRA_MODULES_PATH 行並在 sources 目錄中的 opencv_contrib 中提供 modules 目錄。

StackOverflow 文件

完成所有需要並提供額外模組的路徑後,再次按 configure 進行更新。之前突出顯示的行將不再突出顯示,新欄位將以紅色突出顯示。

StackOverflow 文件

同時選中你需要構建的框。

確保 BUILD_opencv_contrib_worldBUILD_opencv_world選中。可能存在一個錯誤,當檢查任何後者時會發生錯誤。

在此步驟結束時單擊生成,你將完成 CMake,你可以關閉它。如果沒有錯誤,你將在下方窗格的末尾收到一條訊息,說“ 生成完成”

StackOverflow 文件

第 4 步:

開啟 opencv-3.1.0 中的構建目錄,你會發現裡面有一堆新的資料夾和檔案。在此過程開始時它是一個空資料夾。

你將只處理 OpenCV.sln 檔案,並且不對其餘檔案執行任何操作。使用在上一步中在 CMake 中編譯時使用的版本開啟此檔案。它必須是 Visual Microsoft 2013

StackOverflow 文件

*當你開啟 .sln 檔案時,請耐心等待,因為需要一些時間來準備建築物。*當 Ready 準備好 (不變)時,你可以開始構建目標。按照下圖中的編號開始構建。還要確保 Solution ConfigurationRelease 而不是 Debug

StackOverflow 文件

第 5 步:

構建完成後,你需要將構建目錄中的幾個檔案複製並貼上到 Python27 目錄中。

搜尋 cv2.pyd 檔案並將其複製到 Python27 中的 site-packages 目錄。cv2.pyd 應該存在於 C:\opencv-3.1.0\build\lib\Release 中。之後,C:\opencv-3.1.0\build\bin\Release 中的 .dll 檔案複製到 Python27 的父目錄中 C:\Python27

在此步驟結束時,重新啟動 PC。

驗證:

開啟 IDLE 並在 Python shell 型別中:

>>> import cv2
>>> print cv2.__version__
3.1.0-dev

StackOverflow 文件