搗鼓了一天,終於把OpenCV的環境配置好了,其間並沒有像OpenCV中文論壇的於老師那樣進行Cmake編譯。記錄一下配置的過程,以備后需。
操作系統:Windows 7 x86 中文旗艦版;
編譯環境:Visual Studio 2010 中文旗艦版;
OpenCV版本:OpenCV-2.3.1-win;
一、下載OpenCV2.3.1
- 從 http://www.opencv.org.cn/index.php/Download 下載 OpenCV for Windows(也即 OpenCV-2.3.1-win-superpack.exe 文件)。
- 將 OpenCV-2.3.1-win-superpack.exe 解壓並放到某個路徑目錄下,例如 D:\OpenCV2.3.1。其目錄結構如下圖所示。
二、配置環境變量
右擊“我的電腦”選“屬性”,點“高級系統屬性”,點“環境變量”,在用戶變量中新建兩個用戶變量,如下。
PATH D:\OpenCV2.3.1\build
OPENCV D:\OpenCV2.3.1\build\x86\vc10\bin
如下圖所示。
三、配置VS2010
以前配置VC++6.0、VS2005、VS2008都是在“工具”->“選項”->“項目與解決方案”->“VC++ 目錄”中一次性配置好就可以了。但是到了VS2010后,當你按照前面的這個步驟操作時,會發現有提示“VC++目錄編輯功能已被否決”。上網搜了許久,發現以下方法較好,一次性配置即可。
選擇“視圖”——“其他窗口”——“屬性管理器”,如下圖所示。
雙擊Debug | Win32下的“Microsoft.Cpp.Win32.user”,如下圖所示。
在彈出的配置框中配置,選擇“VC++目錄”。
1、在“包含目錄”中的結尾處(若結尾處無英文狀態下的“;”則需自行添加“;”,下同)加入以下內容添加以下內容:
$(opencv)\include\opencv;$(opencv)\include\opencv2;$(opencv)\include;
2、在庫目錄中的結尾處加入以下內容添加:
$(opencv)\x86\vc10\lib;
注:$(opencv)\include\opencv是告訴VC去“opencv”這個變量中的文件夾下的\include\opencv路徑中找OpenCV的庫文件目錄。
如下圖所示。
在“鏈接器”-“輸入”-“附加依賴選項”中的結尾處加入以下內容:
$(opencv)\x86\vc10\lib\opencv_core231d.lib;$(opencv)\x86\vc10\lib\opencv_highgui231d.lib;$(opencv)\x86\vc10\lib\opencv_video231d.lib;$(opencv)\x86\vc10\lib\opencv_ml231d.lib;$(opencv)\x86\vc10\lib\opencv_legacy231d.lib;$(opencv)\x86\vc10\lib\opencv_imgproc231d.lib;
注:lib可根據實際情況進行刪減。
如下圖所示。
點擊確定,至此OpenCV的配置完成。
四、測試
在VC下,新建一個“win32控制台程序”的demo,輸入下面的代碼,對以上的配置進行測試。
1 #include "highgui.h"
2 using namespace std;
3 using namespace cv;
4
5 int _tmain(int argc, _TCHAR* argv[])
6 {
7 const char* imagename = "D:/Demo.jpg"; //隨便放一張jpg圖片在D盤或另行設置目錄
8 Mat img = cv::imread(imagename);
9
10 if(img.empty())
11 return -1; //是否加載成功
12
13 if(!img.data)
14 return -1;
15
16 namedWindow("image", CV_WINDOW_AUTOSIZE);
17 imshow("image", img);
18
19 waitKey();
20
21 return 0;
22 }
若配置無誤,則程序會運行成功並打開一幅圖片。
五、總結
以前做圖像視頻處理的時候也做過OpenCV的配置,從OpenCV1.0、2.0到2.1,從XP到Win7,都是大同小異,也正是這些小異,往往會弄得焦頭爛額。所以,工作在於細致,尤其是編程開發,一個小小的變量就可以引發意想不到的問題。詳情請觀影《蝴蝶效應》三部曲。
今天是3月1日,再次向偉大而平凡的雷鋒同志致敬!
轉載請注明出處,http://www.cnblogs.com/jamiechu/archive/2012/03/01/2376266.html。