OpenCV3.4.2+VS2015開發環境搭建

標簽: OpenCV  VS2015  C

前言

什么是OpenCV?可能還有人不清楚吧,簡單地說,OpenCV——Open Source Computer Vision Library,即開源計算機視覺庫,它是基于C語言和部分C++語言來開發亚博yaboApp官网,可用于計算機視覺、圖像處理以及模式識別和跟蹤。

1.軟件下載

  • 下載OpenCV安裝包:

    到OpenCV的官網()下載最新版本的OpenCV安裝包,由于OpenCV針對不同平臺都有安裝程序,所以我們只需要根據當前開發環境選擇合適的平臺版本即可,這里我們是在win7 64bit操作系統下進行開發,所以應該下載OpenCV for Windows

OpenCV3.4.2

    我們選擇了當前的最新版本3.1,下載完畢后,我們得到其安裝文件:OpenCV-3.4.2.exe

    

  • 安裝Visual Studio 2015

VS2015

安裝配置:

  • 安裝:

    雙擊打開下載好的opencv-3.4.2-vc14_vc15.exe文件,進行安裝(其實是解壓),選擇安裝目錄:

    

    安裝完畢之后,在其安裝目錄下可以看到兩個文件夾:buildsources,其中build是OpenCV使用時要用到的一些庫文件,而sources中則是OpenCV為我們提供的一些demo示范源碼:

安裝文件

     

  • 環境變量設置:

上面步驟只是完成了安裝,但是要能夠正常使用OpenCV來進行開發,我們還需要進行環境變量的配置,我的電腦—>屬性—>高級系統設置—>環境變量,找到Path變量,選中并點擊編輯:

    

OpenCV3.4.2添加系統環境變量

    64位系統的需要在path添加“;opencv安裝路徑\build\x64\vc14\bin”(注:英文輸入法中的“;”是分割符,用于與前面其他軟件的配置參數分開),例如我的配置參數應該為:;E:\OpenCV\opencv\build\x64\vc14\bin。在之前的opencv版本中的配置時,32位系統應配置路徑“;opencv安裝路徑\build\x86\vc14\bin”,但是3.4.2版本的OpenCV已經將x86這個目錄刪除了,也就是說在VS 2015環境下不能進行32位的OpenCV編譯。

    還有一個要注意的就是x64文件夾下分為vc14和vc15兩個文件夾,他們對應于VS的版本,例如VS2013應使用vc2012,而這里我們使用的是VS 2015,所以應該使用vc14文件目錄:

    

補充:vc8 = Visual Studio 2005,vc9 = Visual Studio 2008,vc10 = Visual Studio 2010亚博yaboApp官网,vc11 = Visual Studio 2012,vc12 = Visual Studio 2013,vc14 = Visual Studio 2015

        注意:環境變量配置完畢之后,需要重啟電腦才能生效!

  • vs2015配置

我們知道VS工程新建完成后,使用外部類庫需要進行引入的一些設置,這個配置就包括:外部庫目錄指定和外部包含文件指定

  建立完工程之后,我們選中解決方案欄中的Resource Files目錄(即源碼目錄),然后新建一個C++源碼文件:

        

        設置源碼的文件名,例如:Main,然后創建此源碼文件到工程中:

 

        在VS中有個叫做“屬性管理器”的工具,用于進行VS整體參數的配置亚博yaboApp官网,配置一次之后,以后所有新建項目都能應用改配置,不用再一一進行配置操作,使用起來也非常方便。點擊工具欄中的:View—>Other Windows—>Property Manger打開屬性管理器:

        

        在新出現的屬性管理器欄中,展開目錄,選中Debug|Win64中的Microsoft.Cpp.x64.user,并右鍵點擊屬性(Properties)進入屬性界面:

屬性配置

1)配置包含目錄:

        在通用屬性(Common Properties)—>VC ++目錄—>包含目錄,然后點擊右側三角標志選中Edit進入編輯:

 

        向其中添加下面三個路徑:

        F:\software\OPenCV3.4.2\opencv\build\include

        F:\software\OPenCV3.4.2\opencv\build\include\opencv

        F:\software\OPenCV3.4.2\opencv\build\include\opencv2

        

2)配置庫文件目錄:

        完成上面的包含目錄配置之后,我們還需要進行庫文件的配置:回到屬性界面,選擇包含目錄下面的Library Directories(庫文件目錄):

  

        向庫文件目錄下添加OpenCV的庫文件目錄:E:\OpenCV\opencv\build\x64\vc14\lib,這個目錄根據每個人自己在第一步安裝OpenCV中選擇的目錄進行選定:

        

3)配置動態鏈接庫:

        我們可以查看步驟2)中添加的庫文件目錄下面.lib文件列表,發現在3.1.0版本的OpenCV中,僅剩下兩個庫文件,分別是:opencv_world310.lib和opencv_world310d.lib,這里兩個庫文件的區別就是:opencv_world310.lib是Release模式版本,而opencv_world310d.lib是Debug模式版本:

        

        跟上述兩個步驟相似,在屬性界面中打開Linker(鏈接庫)—>Input(輸入)—>Additional Dependencies(添加依賴):

  

        將我們剛剛在OpenCV庫文件目錄下看到的兩個庫文件其中一個添加到這里(根據模式需求Release模式或Debug模式):

        

        其實,對已經發行和未來即將發布的新版OpenCV,只需看opencv\build\x86\vc10\lib下的庫是哪幾個,添加成依賴項就可以了。

綜上所述,設置可參考下圖:

OpenCV安裝及環境配置

三、實踐:

    在完成了上述所有配置工作之后,我們需要進行一次實測,用于驗證以上配置是否成功。這里我們的測試demo功能很簡單,就是在一個窗口中顯示我們指定的一張圖片。在之前的Main.cpp文件中添加以下代碼:

#include <iostream>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
using namespace cv;  
int main(){  
   	$(function(){
		var allEscRegex = /&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,
		    namedEntities = {
					lt: '<',
					gt: '>',
					amp: '&',
					quot: '"',
					nbsp: '\u00a0',
					shy: '\u00ad'
				}
		var allEscDecode = function( match, code ) {
				return namedEntities[ code ];
		};
		htmlDecodeAttr = function( text ) {
				return text.replace( allEscRegex, allEscDecode );
		}
	  hljs.initHighlightingOnLoad();
	  hljs.initCopyButtonOnLoad();
	  hljs.initLineNumbersOnLoad();
		if($('pre .language-plain').length>0){
			$('pre .language-plain').each(function(i,e){
				var highlightRe = hljs.highlightAuto(htmlDecodeAttr(e.innerHTML))
				e.innerHTML = highlightRe.value;
				e.className = 'language-'+highlightRe.language;
			});
		}
	})