1.vc++配置opencv
環境:
vs2013
准備工作:
1.安裝opencv。
opencv各版本間存在API差異,opencv提供相應版本的vc文件,在其安裝目錄 ..opencv\build\x86 目錄下,個人覺得引用與當前使用vs版本最接近的目錄文件就可以。opencv安裝目錄下的引用lib及bin文件 提供x86和x64
2.配置環境變量。
首先在 我的電腦 右鍵 屬性,在系統屬性中 選擇高級,打開設置環境變量的界面。其中 上半部分為用戶變量,下半部分為系統變量。
(1)在用戶變量中添加PATH變量,值為:安裝目錄\opencv\build\x86\vc12\bin;安裝目錄\opencv\build\x64\vc12\bin
(2)在用戶變量中添加OPENCV,值為:安裝目錄\opencv\build
過程中變量如果存在,將值添加至末尾,以;間隔
配置好了環境變量,接下來配置的是vc++的工程項目了,用來在vc++中使用opencv。
打開vs,新建項目,選擇vc++,32位控制台應用程序,工程命名為opencvTest。
在項目工程上右鍵,屬性,打開屬性頁面。
屬性中選擇配置信息,配置中配置選項選擇為Debug。點擊左側導航中的 vc++目錄。編輯其中的包含目錄和庫目錄。
注:此處為單獨的項目配置信息,如果想將此配置導出屬性文件供各個項目使用,選擇vs中的視圖-》其他窗口-》屬性管理器
在屬性管理器項目上右鍵 =》添加新項目屬性表,為屬性表命名並存放於公共目錄下,以方便后面的項目引用,在屬性管理器中雙擊新建的屬性其具體配置和下面的一樣。配置好屬性表之后,下次使用就可以在屬性管理器中 右鍵=》添加現有屬性表,找到屬性文件,添加即可使用。此處以單獨項目的配置信息為例:
其中,包含目錄中引入的路徑是 opencv安裝路徑\opencv\build\include 及其子項。庫目錄是其lib文件的所在目錄,這里把x86和x64的都引入進來了。如出現“error C1083: 無法打開包括文件:“opencv2/core/core_c.h”: No such file or directory”類錯誤 說明包含目錄中的引用出現問題,可能是路徑錯了,調整引用路徑就ok。
這個地方要注意的是,根據當前項目的實際情況選擇相應版本的lib目錄,本次設置將兩個版本的lib文件全部引用了,但實際項目中系統如果發現有兩個一樣的引用,會默認使用第一個版本,所以如果為32位的應用程序,則x86的放在首位,如果為64位應用程序x64放在首位。如出現錯誤“ 無法解析的外部符號_XXXXX,該符號在函數_main 中被引用”則是此處位置的問題,調整位置后就ok了。
之后設置連接器的輸入項,設置其附加依賴項,此處為opencv的引用lib文件名稱。opencv3.4.13附加依賴項
點擊應用並確定。至此,opencv在vs中的配置完成,下面我們開始測試在vc++中調用opencv函數完成圖片操作。
(1)在項目源文件目錄下,點擊opencvTest.cpp,修改其代碼為:
// opencvTest.cpp : 定義控制台應用程序的入口點。 // #include "stdafx.h" #include "cv.h" #include "highgui.h" using namespace std; int main() { IplImage* test; test = cvLoadImage("圖片路徑", 1); cvNamedWindow("opencv_demo", 1); cvShowImage("opencv_demo", test); cvWaitKey(0); cvDestroyWindow("opencv_demo"); }
此處需要注意的是:
#include "stdafx.h" 需放在文件的第一行,否則會得到跳過引用的警告錯誤,和找不到相關引用方法的錯誤。
運行項目,執行結果為打開了在項目中引用路徑的圖片文件。
運行期間 遇到“無法啟動此程序,因為計算機中丟失xxx.dll”文件問題,解決方法:項目=》c\c++=》預處理器 ,在預處理器定義中添加_CRT_SECURE_NO_WARNINGS,然后重新啟動vs,完成修改。