VS2013下OpenCV2.48配置
VS2013+OpenCV2.48配置
一、下載OpenCV
SDK下載連結在頁面右側
根據平臺選擇相應的SDK下載。在Windows開發下開發,選擇下載OpenCV for Windows。
二、安裝OpenCVSDK
雙擊下載的opencv-2.4.8.exe進行SDK安裝。
設定opencv sdk解壓目錄,點選Extract後解壓。
解壓過程如上圖
三、OpenCV SDK資料夾結構簡介
解壓後再解壓目錄下有OpenCV目錄
在opencv資料夾下有build和sources兩個資料夾,build是sdk 包,sources是原始碼包(裡面也有opencv使用例子原始碼)
在build資料夾下include是C&C++標頭檔案所在資料夾;doc是文件資料夾;java是java開發的庫資料夾;python是pathon開發庫資料夾;x64和X86是已編譯好的C&C++的64位和32位庫資料夾,在它裡面有vc10、vc11、vc12三個資料夾,分別對應VC++2010、VC++2012和VC++2013。
因不同版本VC++生成的庫檔案所需的執行時不同,因此配置VC++工程時需要選擇相對應的二進位制庫檔案。在vcXX資料夾下bin資料夾是公用的動態連結庫,在系統環境變數裡配置後,所以opencv工程都能共享他們;lib資料夾是動態庫隱式呼叫所需的靜態連結檔案;staticlib資料夾是靜態連結庫,需要生成不依賴動態庫的程式就是用它們。
四、設定opencv的環境變數
“開始選單”-> “控制面板”->“系統”或在“計算機”上右鍵選“屬性”開啟系統設定視窗
選擇“高階系統設定”開啟“系統屬性”視窗
選擇“高階選項卡“,點選“環境變數”按鈕開啟“環境變數”視窗
在系統變數裡找到Path變數,在Path中新增值SDK中的bin目錄。本人解壓時設定的目錄是E:\SDK,用到是32位庫,VC++用的是2013,因此新增到bin目錄為E:\SDK\opencv\build\x86\vc12\bin。注:環境變數配置後,需重啟系統才能生效。
五、VC++工程配置
開啟vs2013,選擇新建專案。
選擇Visual C++模板建立空專案。因只是簡單測試下OpenCV SDK能否正常使用,不想引入windows api、MFC、.NET這些,我選擇了最簡單的空專案來建立工程。
專案建好後,點選“選單”->“專案”->“屬性”,開啟專案屬性對話方塊,選擇“C++目錄”對SDK目錄進行配置。
選擇“包含目錄”,在下拉選單中選擇“編輯”,開啟包含目錄對話方塊。新增前面介紹過的SDK中的include資料夾的路徑。
選擇“庫目錄”,在下拉選單中選擇“編輯”,開啟包含目錄對話方塊。新增前面介紹過的SDK中的lib資料夾的路徑。這裡需要注意點,開發32位程式選擇x86目錄下的,64位則選X64目錄下的,同時還要根據自己所用的VC++版本選擇相應的vcXX目錄。我要開發的是32位程式,使用的2013因此,選擇的是X86中vc12下的lib資料夾。
接下來是配置專案所需的靜態連結庫。選擇“連結器”下的“輸入”,在“附加依賴項”下拉項中選擇“編輯”,開啟附加依賴項對話方塊。
在附加依賴項中新增opencv_core248d.lib,這是opencv最基本的類和函式;新增opencv_highgui248d.lib,它是opencv提供的簡單gui;新增opencv_imgproc248d.lib,它提供了一些基礎的影象處理操作。簡單的運用,這三個庫基本夠了。用到其他opencv功能時,只需按照所用函式所在的標頭檔案名,新增相應的lib檔案就行了。
注:前面設定的是新建工程的Debug版配置,切換到Release用同樣的方法配置就可以,唯一的區別是Debug版用到的dll和lib檔案都有後綴d,Release版使用的不帶d。配置Release的附加依賴項時別忘了把d刪掉。
六、測試OpenCV配置是否正確
在解決方案中,在專案上右鍵,選擇新增新建項。
在對話方塊中選擇新增C++檔案
在新建的C++檔案中寫上一個最簡單的測試程式碼生成後執行。如果配置無誤,生成的程式就能正常運行了。如果提示缺少dll檔案,是環境變數沒配置對,重新配置環境變數或將SDK中bin目錄中的相應dll檔案靠到工程目錄下或系統所在盤Windows\System32下就可以解決。如果是提示連結錯誤,是附加依賴項沒設定對,或沒有新增夠所需的lib檔案。
這裡來段用OpenCV開啟並顯示圖片的程式碼
#include <opencv2\opencv.hpp>
//opencv2下是C++介面
using namespace cv;
//cv是Opencv的名字空間
int main()
{
Mat img = imread("E:/lena.png");
//新建一個矩陣用來存放從檔案讀取的圖片
namedWindow("image",CV_WINDOW_AUTOSIZE);
//建立一個視窗,視窗標題設為image,並設成自動大小
imshow("image",img);
//在image名字的視窗中顯示img中的影象
waitKey();
//等待鍵盤輸入
return 0;
//程式結束
}
例子中所用的測試圖片是OpenCV自帶的lena.png。看過影象學書的是不是覺著這圖很眼熟,似乎所有影象學的書都會用到這圖。這圖基本上可以算影象學的一個標準用圖了,不過這圖並不是完整版哦,它只是截取了其中的一部分。