鏈接:
http://blog.csdn.net/zackzhaoyang/article/details/6883996
http://blog.csdn.net/yeqiu712/article/details/6718850
初用時可能遇到的一些問題:
http://blog.csdn.net/wuweigreat/article/details/7044478
網上有使用Cmake編譯然後配置的方式,個人覺得能不用就不用,簡單纔是王道。
1. 下載OpenCV-2.3.1-win-superpack,釋放到D:\opencv。下載TBB3.0
http://www.threadingbuildingblocks.org/uploads/77/151/3.0/tbb30_20100406oss_win.zip
解壓到D:\opencv下
2. 設置環境變量:右擊計算機打開屬性->高級系統設置,高級選項卡->環境變量。
用戶變量設置:變量:OPENCV,值:D:\opencv\build
變量:PATH,值:D:\opencv\build\x86\vc10\bin;D:\opencv\tbb30\bin\ia32\vc10
系統變量設置:Path添加以下路徑
D:\opencv\build\x86\vc10\bin;D:\opencv\tbb30\bin\ia32\vc10(用分號隔開)
重啓計算機
3. 開始給以後所有的項目進行配置。
首先任意新建一個項目,我這裏建的是名字爲opencv的C++控制檯程序。下來的設置比較特別,經過多次搜索才發現這樣做最好。
視圖-->解決方案資源管理器-->選擇左側控件下方的”屬性管理器
展開opencv,一直展開看到Microsoft.Cpp.Win32.user,對它右鍵選擇屬性。
然後對VC++目錄下選項進行添加:
(1)可執行文件目錄:
(2)Library Directories(庫目錄)
D:\opencv\build\x86\vc10\lib;D:\opencv\tbb30\lib\ia32\vc10 (如果是64位的,此處ia32換爲intel64)
(3)Include Directories(包含目錄)
D:\opencv\include\opencv2
D:\opencv\build\include
D:\opencv\include\opencv
D:\opencv\tbb30\include
4. 下面對單個項目進行配置
因爲是對單個項目配置的,所以以後每生成一個使用OpenCV的項目都需要設置一次,因此保存好下面的路徑。
項目-->屬性-->連接器-->輸入
在”附加依賴項”中進行添加。先對此界面左上角的”配置”選擇上Debug,在附加依賴項中添加:
D:\opencv\build\x86\vc10\lib\opencv_core231d.lib
D:\opencv\build\x86\vc10\lib\opencv_highgui231d.lib
D:\opencv\build\x86\vc10\lib\opencv_video231d.lib
D:\opencv\build\x86\vc10\lib\opencv_ml231d.lib
D:\opencv\build\x86\vc10\lib\opencv_legacy231d.lib
D:\opencv\build\x86\vc10\lib\opencv_imgproc231d.lib
把Debug換成Release(如果問你是否保存,則保存修改),再添加:
D:\opencv\build\x86\vc10\lib\opencv_core231.lib
D:\opencv\build\x86\vc10\lib\opencv_highgui231.lib
D:\opencv\build\x86\vc10\lib\opencv_video231.lib
D:\opencv\build\x86\vc10\lib\opencv_ml231.lib
D:\opencv\build\x86\vc10\lib\opencv_legacy231.lib
D:\opencv\build\x86\vc10\lib\opencv_imgproc231.lib
具體的項目可能還要用到其他的庫,用同樣的方法添加。
5. 至此完成配置,把lena.jpg放在代碼目錄下,測試代碼如下:
#include "stdafx.h"
#include "opencv/cv.h"
#include "opencv/highgui.h"
int _tmain(int argc, _TCHAR* argv[])
{
IplImage* img = cvLoadImage("lena.jpg", CV_LOAD_IMAGE_UNCHANGED);
if (!img)
{
return -1;
}
cvNamedWindow("display", CV_WINDOW_AUTOSIZE);
cvShowImage("display", img );
cvWaitKey(0);
return 0;
}