2017/04/01
2017/04/07 Update: OpenCV_Contrib Compile & cv2.pyd generation
2017/04/11 Update: OpenCV_Contrib Complie
因為OpenCV官方并未提供py35預編好的安裝包,于是我們必須要去托管OpenCV的GitHub倉庫下載源代碼?。下載完后,我們需要再其目錄下新建一個build路徑來儲存Cmake生成的OpenCV庫。然后在Cmake-gui下,指定OpenCV的源路徑和生成路徑(build)然后生成即可。
OpenCV 編譯:在Cmake生成完后,來到build路徑,用VS打開opencv.sln。在載入完成后,選定ALL_BUILD生成release的庫文件。
對于pyd文件的生成,有兩種方法。一種是在OpenCV編譯完后,來到build路徑下的module,找到python3路徑并用VS打開opencv_python3.sln,然后再生成一次就可以在build下的lib路徑里找到對應python3的OpenCV庫文件cv2.cpxx-xxx_xxxxx.pyd。若VS提示說未找到python35_d.lib,則可以直接修改python安裝路徑下的pyconfig.h,將 “pragma comment(lib,"python3X_d.lib")” 改成 “pragma comment(lib,"python3X.lib")” (參考)。最后,將cv2.cpxx-xxx_xxxxx.pyd和build中bin目錄下release庫的所有dll拷貝到python安裝路徑下的DLLs即可。
另一種生成pyd文件的方法則是在ALL_BUILD完成后在VS的資源管理器中選擇INSTALL然后開始生成。生成完后在build文件夾中會有一個install文件夾,內部就包含著pyd文件。將其與build目錄下的bin文件夾中的dll文件拷到python目錄下的DLLs即可。除了生成OpenCV的python庫外,此方法亦可用于生成用于C++的OpenCV頭文件(Reference)。
關于OpenCV_Contrib
OpenCV_Contrib存放著一些實驗性的模塊。如果想要編譯Contrib,在將其從Github下載后,打開Cmake-gui,把OPENCV_EXTRA_MODULES_PATH的值填寫為Contrib下Module文件夾的路徑,然后正常Configure,Generate即可(Reference)。