使用 CMake 和 Visual Studio 在 Windows 上為 Python2 構建和編譯 opencv 3.1.0-dev
構建和編譯 opencv 3.1.0-dev
以獲取非免費模組的訪問許可權對某些人來說尤其令人頭疼,特別是在 Windows 機器上。與 Ubuntu 不同,為 Windows 設定 opencv 需要一些時間,並且在構建和編譯之前需要先安裝幾個 pf 依賴項。
在進一步執行任何步驟之前,你應該下載和安裝的程式是:
如果你要下載 Python for Win32,即使你使用的是 64 位計算機,也應該下載 CMake for Win32
建議下載 32 位程式,因為某些 Python 庫僅支援 32 位計算機,因此要遠離麻煩,只需安裝 32 位版本的所有內容即可
-
Numpy for Python2.7 Win32
安裝完所有上述依賴項後,重新啟動 PC,然後你就可以繼續下一步了。
第 2 步:
如果你不喜歡閱讀的人,可以觀看本教程 。本教程將從這裡開始到本文件的末尾。
你需要從 github 獲取 opencv 和 opencv_contrib 。你可以在以下位置找到: ****
建立一個名為 opencv-3.1.0 的目錄,在此導演中,你將建立另外兩個目錄,一個用於構建,另一個用於源。提取後,你將把兩個下載的 zip 檔案放在 sources 檔案中。
例如,你的 opencv-3.1.0 目錄位於 C 驅動器中,因此你將有三個路徑:
C:\opencv-3.1.0
C:\opencv-3.1.0\build
C:\opencv-3.1.0\sources
第三個目錄將包含兩個路徑:
C:\opencv-3.1.0\sources\opencv
C:\opencv-3.1.0\sources\opencv_contrib
現在已經完成了準備工作。讓我們做一些有用的東西
第 3 步:
執行 CMake 作為管理員。將出現這樣的視窗,你必須提供兩個目錄,一個用於源,另一個用於編譯 opencv。下面的圖片可以比文字更好地幫助你。
接下來單擊 configure ,你將被提升為提供生成器; 即編譯器; 對於 opencv。你必須提供位於 Microsoft Visual Studio 2013 中的 cl.exe
。單擊指定本機生成器,將出現如下所示的彈出視窗,
路徑將是這樣的:C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe
。提供 C 和 C++欄位的路徑。單擊完成並等待配置完成。如果你正確執行上述所有步驟,則應該出現零錯誤。
在 CMake 完成配置後,你將看到 CMake 視窗中出現的新專案以紅色突出顯示。它將是這樣的:
單擊小方框,檢查所需的構建。搜尋 OPENCV_EXTRA_MODULES_PATH
行並在 sources 目錄中的 opencv_contrib 中提供 modules 目錄。
完成所有需要並提供額外模組的路徑後,再次按 configure 進行更新。之前突出顯示的行將不再突出顯示,新欄位將以紅色突出顯示。
同時選中你需要構建的框。
確保 BUILD_opencv_contrib_world 和 BUILD_opencv_world 都選中。可能存在一個錯誤,當檢查任何後者時會發生錯誤。
在此步驟結束時單擊生成,你將完成 CMake,你可以關閉它。如果沒有錯誤,你將在下方窗格的末尾收到一條訊息,說“ 生成完成” 。
第 4 步:
開啟 opencv-3.1.0 中的構建目錄,你會發現裡面有一堆新的資料夾和檔案。在此過程開始時它是一個空資料夾。
你將只處理 OpenCV.sln
檔案,並且不對其餘檔案執行任何操作。使用在上一步中在 CMake 中編譯時使用的版本開啟此檔案。它必須是 Visual Microsoft 2013
。
*當你開啟 .sln 檔案時,請耐心等待,因為需要一些時間來準備建築物。*當 Ready 準備好 (不變)時,你可以開始構建目標。按照下圖中的編號開始構建。還要確保 Solution Configuration
是 Release
而不是 Debug
。
第 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