安裝所需要的軟件
下載OpenCV
- 從本站下載欄目 http://www.opencv.org.cn/index.php/Download 下載 OpenCV for Windows(也即 OpenCV-2.4.3.exe 文件)。
- 將 OpenCV-2.4.3.exe 解壓並放到某個目錄下,例如
D:\OpenCV
。解壓后的目錄結構如下圖。
配置VC
配置include路徑
也即告訴VC去什么地方尋找OpenCV的頭文件。
- 打開VC++ 2010 Express,創建一個Win32控制台程序opencvtest;
- 選擇Solution Explorer里的opencvtest項目,點擊鼠標右鍵,選擇Properties。
- 依次選擇“配置屬性”->“VC++目錄”->“包含目錄”,包含
D:\OpenCV\build\include;D:\OpenCV\build\include\opencv;D:\OpenCV\build\include\opencv2
(這里要注意!這三個include要分成條記錄,而且順序最好是opencv2 opencv include,沒有分號!)
配置lib路徑
也即告訴VC去什么地方尋找OpenCV的庫文件。
在剛才下載的文件OpenCV-2.4.3.exe 里,已經為VC2010預先編譯好了動態庫和靜態庫。因此我們不需要如早先版本那樣,自己用cmake編譯OpenCV。
- 32位系統 & VC2010,庫目錄為:
D:\OpenCV\build\x86\vc10\lib
- 64位系統 & VC2010,庫目錄為:
D:\OpenCV\build\x64\vc10\lib
請根據自己的情況二選一,將庫目錄輸入“屬性”->“配置屬性”->“VC++目錄”->“庫目錄” 。如下圖所示:
設置環境變量
剛才設置的是動態庫,因此還需要將OpenCV的dll文件所在的目錄加入Path環境變量。dll文件目錄如下:
- 32位系統 & VC2010,dll目錄為:
D:\OpenCV\build\x86\vc10\bin
- 64位系統 & VC2010,dll目錄為:
D:\OpenCV\build\x64\vc10\bin
由於有些函數需要TBB,所以需要將tbb所在的目錄也加入到環境變量Path中。TBB相關的DLL路徑為:
- 32位系統 & VC2010:
D:\OpenCV\build\common\tbb\ia32\vc10
- 64位系統 & VC2010:
D:\OpenCV\build\common\tbb\intel64\vc10
如下圖所示將OpenCV和TBB的dll文件所在的目錄系統環境變量Path中。加入后可能需要注銷當前Windows用戶(或重啟)后重新登陸才生效。
使用OpenCV 2.4.3編程
- 選擇Solution Explorer里的opencvtest項目,點擊鼠標右鍵,選擇Properties。
- 在配置屬性-->[鏈接器 LINKER]的[輸入INPUT]中,為項目的Debug配置增加 [附加依賴項 Additional Dependencies]:
opencv_calib3d243d.lib
opencv_contrib243d.lib
opencv_core243d.lib
opencv_features2d243d.lib
opencv_flann243d.lib
opencv_gpu243d.lib
opencv_highgui243d.lib
opencv_imgproc243d.lib
opencv_legacy243d.lib
opencv_ml243d.lib
opencv_objdetect243d.lib
opencv_ts243d.lib
opencv_video243d.lib
(可根據實際需要刪減)注意,請打開了新編輯窗口(即點擊了“...”按鈕)“附加依賴項”,並一條一條分別加入,一條一行(一個回車),(注意行末不要加";")否則會出現類似以下錯誤:1>LINK : fatal error LNK1104: 無法打開文件“…….lib”
- 如果下載的OpenCV不是2.4.3版本,請將"XXX243d.lib"中的"243"更改為對應的版本號,例如:下載OpenCV 2.4.0,則統一改為"XXX240d.lib",否則會出現類似以下錯誤:1>LINK : fatal error LNK1104: 無法打開文件“XXX.lib”
- 為項目的Release配置增加[附加依賴項 Additional Dependencies]:
opencv_contrib243.lib
opencv_core243.lib
opencv_features2d243.lib
opencv_flann243.lib
opencv_gpu243.lib
opencv_highgui243.lib
opencv_imgproc243.lib
opencv_legacy243.lib
opencv_ml243.lib
opencv_objdetect243.lib
opencv_ts243.lib
opencv_video243.lib
(可根據實際需要刪減)*
- 編譯運行下面的例程,需要將lena.jpg文件放在項目目錄下。如果想雙擊運行exe的話,圖片放在.exe同一文件夾內;按F5直接運行程序的話,lena.jpg要放在opencvtest\opencvtest里)。
/*********************************************************************** * OpenCV 2.4.3 測試例程 * 於仕琪 提供 ***********************************************************************/ #include "stdafx.h" #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int _tmain(int argc, _TCHAR* argv[]) { const char* imagename = "lena.jpg"; //從文件中讀入圖像 Mat img = imread(imagename); //如果讀入圖像失敗 if(img.empty()) { fprintf(stderr, "Can not load image %s\n", imagename); return -1; } //顯示圖像 imshow("image", img); //此函數等待按鍵,按鍵盤任意鍵就返回 waitKey(); return 0; }
當按下F5調試后,若是64位的操作系統,有可能會出現如下錯誤:
錯誤1error LNK1112: 模塊計算機類型“x64”與目標計算機類型“X86”沖突
這是因為vs2010的編譯平台是x86所致。解決方法:
點擊F5旁邊的“Debug”,在下拉鏈表里邊選擇“配置管理器”。進入配置管理器后,把Win32改成X64,然后點菜單欄:生成->清理解決方案->重新生成解決方案。OVER。
具體可以參考下面的鏈接:
http://hi.baidu.com/764798/item/fb04d10d3cc66c31f2eafc53