OpenCV3.3安裝教程
阿新 • • 發佈:2019-01-27
簡介
改變
- 主要訊息是我們將DNN模組從opencv_contrib推廣到主儲存庫,改進和加速了很多。不再需要外部BLAS實現。對於GPU,使用Halide(http://halide-lang.org)進行實驗DNN加速。 有關該模組的詳細資訊可以在我們的wiki中找到:OpenCV中的深度學習。
- OpenCV現在可以使用標誌ENABLE_CXX11構建為C ++ 11庫。添加了C ++ 11程式設計師的一些很酷的功能。
- 由於“動態排程”功能,我們還在OpenCV的預設版本中啟用了不少AVX / AVX2和SSE4.x優化。 DNN模組還具有一些AVX / AVX2優化。
- Intel Media SDK現在可以被我們的videoio模組用來進行硬體加速的視訊編碼/解碼。支援MPEG1 / 2,以及H.264。
- 嵌入OpenCV Intel IPP子集已從2015.12升級到2017.2版本,從而在我們的核心和imgproc perf測試中提高了15%的速度。
- 716拉請求已經合併,588我們的錯誤跟蹤器中的問題已經關閉,因為OpenCV 3.2。 另外,我們通過一些嚴格的靜態分析儀工具執行OpenCV,並修復了檢測到的問題。 所以OpenCV 3.3應該是非常穩定和可靠的釋放。
環境
Windows10 x64
Visual Studio 2013
下載
CMake
進入OpenCV的發行版本官網,選擇3.3.0的Sources
安裝
1.解壓OpenCV3.3.0原始碼,並建立Build資料夾路徑
其中opencv-3.3.0是剛才下載opencv-3.3.0.zip解壓出來的資料夾,而OpenCV_VS2013_x64是自定義建立的資料夾,用於存放CMake生成的目標解決方案2.開啟CMake,新增原始碼和目標資料夾路徑
開啟已安裝好的CMake軟體 (1)新增解壓出的OpenCV-3.3.0資料夾絕對路徑(比如,我的絕對路徑是D:\OpenCV\OpenCV3.3\opencv-3.3.0), (2)新增自定義建立的OpenCV-3.3.0build的空資料夾,這裡資料夾名稱為“OpenCV3.3_VS2013_x64”,因為OpenCV版本是3.3,編譯器是VS2013,並且打算生成x64位的解決方案(比如,我的絕對路徑是D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64)3. 多次Configure,配置相應庫
點選Configure按鈕後,會出現下述介面,選擇你所需要的編譯器和解決方案版本(這裡我選擇的是Visual Studio 12 2013 Win64)點選Finish,CMake開始對OpenCV原始碼進行配置生成並下載相應函式庫,如ffmpeg,IPP等(此時需要等待若干分鐘)
當第一次Configure後,介面會出現紅色部分,這是為了讓使用者可以手動補充相應函式庫,如TBB、CUDA、Eigen等,這裡視你的需求而定,若需要其他庫,請自行下載相應庫,並自行配置庫的include和lib
因為我是第一次配置OpenCV3.3,怕出現一些不必要的版本相容問題,所以沒有額外新增庫,並且這裡將CUDA的選項也登出了,即取消勾選WITH的WITH_CUDA(第一次最好不要配置CUDA版本的OpenCV3.3,因為較複雜,若配置無CUDA版本的OpenCV3.3成功後,可以再配置CUDA版的)
再次點選Configure,確保紅色畫面消失,如果紅色畫面一直未消失,請檢查WITH選項,是否勾選了不必要的庫
4.點選Generate,生成opencv解決方案
(1) 當多次Configure後(一般只需要2次),紅色介面完全消失,並出現Configuring done的提示。 (2) 此時請點選Generate按鈕,生成相應的解決方案,若出現Generating done的提示,即表明解決方案生成成功。 (3) 繼續點選Open Project。此時CMake會自行啟動Visual studio 2013軟體,開啟上述生成的解決方案5.Build並Install opencv解決方案
此時Visual studio 2013軟體,已上述生成的解決方案opencvDebug (1) 右擊All_BUILD,選擇生成 。此時需要等待很長時間,大概半個小時 (2) 生成完成後,右擊INSTALL,選擇生成(會在自定義建立的OpenCV資料夾下生成一個install資料夾,包含了include和bin) 上述過程完成後,生成的是Debug版的動態連結庫,此時還需要在Release下進行生成 Release 與上述Debug步驟一致 1) 右擊All_BUILD,選擇生成 。此時需要等待很長時間,大概半個小時 (2) 生成完成後,右擊INSTALL,選擇生成
右擊install生成
自動生成的install資料夾
配置OpenCV3.3動態連結庫
若要呼叫OpenCV3.3需要將bin絕對路徑,新增到系統環境變數中 此時我的bin絕對路徑為D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64\install\x64\vc12\bin,如下圖所示,該資料夾下有很多dll檔案,其中帶d的表示Debug版,不帶d的表示Release版。將bin絕對路徑,新增到系統環境變數中,如何找到“編譯環境變數”,可以自行百度或者參考下述介面來尋找
OpenCV3.3示例
此時已經配置好了OpenCV動態連結庫的環境。 為了需要檢驗OpenCV3.3是否配置成功,能否正常呼叫,我們建立新的VS專案,寫一段測試程式碼來檢驗。(1) 建立新的Visual Studio工程
(2)配置工程
因為上述生成的是Visual Studio2013 x64的動態連結庫,不適用於x86的工程,所以需要配置x64的工程,操作如下在屬性管理器中,新增新專案屬性頁,如選中並右擊,再選擇“新專案屬性頁” Debug
這裡將新建的屬性頁命名為:OpenCV3.3_VS2013_Debug_x64
(a) include,為屬性頁的包含目錄新增include路徑,此時需要新增三個路徑,即x64資料夾下的include及其子資料夾的絕對路徑 D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64\install\include
D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64\install\include\opencv
D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64\install\include\opencv2
(b) lib,為屬性頁的庫目錄新增lib路徑,即D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64\install\x64\vc12\lib
並需要在屬性頁--連結器--輸入--附加依賴項中新增庫的名稱 注意OpenCV3.3一共有17個動態連結庫,因為是現在新增的是Debug版本,所以後綴帶d(只需要將下述17個檔名Copy一下)
opencv_calib3d330d.lib
opencv_core330d.lib
opencv_dnn330d.lib
opencv_features2d330d.lib
opencv_flann330d.lib
opencv_highgui330d.lib
opencv_imgcodecs330d.lib
opencv_imgproc330d.lib
opencv_ml330d.lib
opencv_objdetect330d.lib
opencv_photo330d.lib
opencv_shape330d.lib
opencv_stitching330d.lib
opencv_superres330d.lib
opencv_video330d.lib
opencv_videoio330d.lib
opencv_videostab330d.lib
(c) bin,因為之前已經在系統環境變數中添加了bin資料夾路徑,所以不需要再新增 Release 在屬性管理器中的Release|x64,新建一個屬性頁命名為:OpenCV3.3_VS2013_Release_x64
下述操作和Debug類似,但庫檔名稱不一致,因為不含d (a) include,為屬性頁的包含目錄新增include路徑,此時需要新增三個路徑,即x64資料夾下的include及其子資料夾的絕對路徑 D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64\install\include
D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64\install\include\opencv
D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64\install\include\opencv2
(b) lib,為屬性頁的庫目錄新增lib路徑,即D:\OpenCV\OpenCV3.3\OpenCV3.3_VS2013_x64\install\x64\vc12\lib
並需要在屬性頁--連結器--輸入--附加依賴項中新增庫的名稱 注意OpenCV3.3一共有17個動態連結庫,因為是現在新增的是Release版本,所以後綴無d(只需要將下述17個檔名Copy一下) opencv_calib3d330.lib
opencv_core330.lib
opencv_dnn330.lib
opencv_features2d330.lib
opencv_flann330.lib
opencv_highgui330.lib
opencv_imgcodecs330.lib
opencv_imgproc330.lib
opencv_ml330.lib
opencv_objdetect330.lib
opencv_photo330.lib
opencv_shape330.lib
opencv_stitching330.lib
opencv_superres330.lib
opencv_video330.lib
opencv_videoio330.lib
opencv_videostab330.lib
OpenCV測試Demo
在寫程式碼前,先準備一張影象,儲存在工程目錄下,如xxx\OpenCV3.3\OpenCV3.3_TestDemo在上述工程中新建demo.cpp檔案,新增下述程式碼
- #include <opencv.hpp>
- #include <iostream>
- usingnamespace cv;
- usingnamespace std;
- int main()
- {
- cout << "OpenCV Version: " << CV_VERSION << endl;
- Mat img = imread("img.jpg");
- imshow("img",img);
- waitKey(0);
- return 0;
- }