Visual Studio 2015編譯安裝OpenCV 3.0和opencv_contrib

來源:互聯網
上載者:User

標籤:

       OpenCV 3.0已於往年6月份宣布,新版本對本有API舉行了清算,經過引進T-API、IPP、NEON取得極大的機能晉陞,並變化為模組化布局。然而由於VS2015在其後發布,OpenCV 3.0安裝包提供了對VC11和VC12的支援而沒有VC14。如果使用VC12下的檔案,雖然可以編譯,但運行時會報錯“應用程式無法正常啟動0xc000007b”。於是乎在VS2015下只能自行編譯OpenCV 3.0方能使用。但這樣也有一個好處就是方便查看OpenCV的源碼。

編譯步驟

下面介紹編譯步驟:
1、分別下載並安裝:CMake3.5.1、OpenCV3.0、VS2015
       a) CMake3.5.1:https://cmake.org/download/
       b) OpenCVcontrib:https://github.com/Itseez/opencv_contrib
       c) OpenCV:http://opencv.org/downloads.html
2、用CMake產生OpenCV的VS2015解決方案
       (1) 點擊cmake-gui.exe,運行CMake;
       (2) 點擊“Browse Source…”按鈕選擇原始碼路徑$(opencv_dir)/sources;
       (3) 點擊“Browse Build…”按鈕選擇產生路徑;

       (4) 點擊Configure 在彈出的對話方塊中選擇產生項目版本和編譯器;

       (5) 在紅色欄中勾選需要產生的項目及屬性;
如需編譯opencv_contrib,則設定OPENCV_EXTRA_MODULE_PATH的值為$(opencv_contrib_dir)/modules,其中“$(opencv_contrib_dir)”表示opencv_contrib解壓路徑。

       
上邊是對應於編譯動態連結程式庫版本的,如果編譯靜態連結庫版本,需要取消BUILD_SHARE_LIBS
為了opencv的最終產生的庫打包成一個world,需要選擇BUILD_opencv_world

(6) 點擊Configure 完成後,點擊Generate 產生項目工程即可;

3、開啟opencv工程並編譯原始碼,產生我們所需要的動態連結程式庫
       (1) 雙擊組建目錄下OpenCV.sln,開啟解決方案;

       (2) 在方案總管視窗中選擇ALL_BUILD項目,右鍵進行“產生”;

       (3) 從Debug模式切換到Release再次對項目進行產生;

產生的連結庫檔案分別在$(build_dir)/bin/Debug$(build_dir)/bin/Release下。
4、配置Opencv環境變數
       (1) 右擊“我的電腦”選擇依次“屬性”→“進階系統設定”→“環境變數”→”建立”進行編輯,在添加變數名“OPENCV”,變數值為“$(opencv_dir)\build”;

       (2) 在環境變數path末尾添加產生的連結庫路徑;

       (3) 登出或重啟系統使環境變數生效。
5、建立測試工程
       (1) 在VS2015中建立空項目OpenCVDisplayImage
       (2) 編輯 OpenCVDisplayImage.cpp,並將圖片複製到項目目錄下;

#include<iostream>  #include <opencv2/core/core.hpp>  #include <opencv2/highgui/highgui.hpp>  using namespace cv;  int main()  {      // 讀入一張圖片(遊戲原畫)      Mat img=imread("pic.jpg");      // 建立一個名為 "遊戲原畫"視窗      namedWindow("遊戲原畫");      // 在視窗中顯示遊戲原畫      imshow("遊戲原畫",img);      // 等待6000 ms後視窗自動關閉      waitKey(6000);  } 

       (3) 配置包含目錄、庫目錄及附加依賴項;
在屬性管理員中雙擊Debug|Win32,選擇VC++目錄下的包含目錄,添加

$(OPENCV)\include;$(OPENCV)\include\opencv;$(OPENCV)\include\opencv2;

庫目錄,添加

$(OPENCV)\x86\vc14\lib\Debug;$(OPENCV)\x86\vc14\3rdparty\lib\Debug;


連結器->輸入->附加依賴項處添加:

opencv_ts300d.lib;opencv_world300d.lib;


對於Release同理,雙擊Release”Win32,選擇包含目錄,添加

$(OPENCV)\include;$(OPENCV)\include\opencv;$(OPENCV)\include\opencv2;

庫目錄,添加

$(OPENCV)\x86\vc14\lib\Release;$(OPENCV)\x86\vc14\3rdparty\lib\Release;

       (4) 產生項目並運行,結果如所示。

編譯過程中的問題

下面介紹編譯步驟:
1、CMake Error at 3rdparty/ippicv/downloader.cmake

CMake Error at 3rdparty/ippicv/downloader.cmake:75 (message):  ICV: Failed to download ICV package: ippicv_windows_20141027.zip.  Status=18;"Transferred a partial file"Call Stack (most recent call first):  3rdparty/ippicv/downloader.cmake:108 (_icv_downloader)  cmake/OpenCVFindIPP.cmake:235 (include)  cmake/OpenCVFindLibsPerf.cmake:12 (include)  CMakeLists.txt:526 (include)  Configuring incomplete, errors occurred!

解決辦法:
       a) 手動下載ippicv_windows_20141027.zip
       b) 將上面的ZIP檔案放在OpenCV的目錄下面,我的路徑是下面這個:
E:\develop\opencv\include\opencv-3.0.0-windows\sources\3rdparty\ippicv\downloads\windows-b59f865d1ba16e8c84124e19d78eec57

       c) 開啟CMake,重新Configure產生工程檔案即可。

2、OpenCV 3.0編譯失敗

Visual Studio 2015編譯安裝OpenCV 3.0和opencv_contrib

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.