OpenCV2.3.1+VS2005配置方法
OpenCV2.3.1+VS2005
下載OpenCV
?
3? 安裝CMake
從?http://www.cmake.org/cmake/resources/software.html?下載 Windows (Win32 Installer) 安裝。
文件CMake 2.8就位于opencv2.3.1之下
?
4? 編譯OpenCV
??? 1 用CMake導(dǎo)出VC++項(xiàng)目文件
- 運(yùn)行cmake-gui,設(shè)置where is the source code路徑為OpenCV安裝路徑(本文檔假定安裝位置為:c:\OpenCV2.3.1),并創(chuàng)建子目錄c:\OpenCV2.3.1\build\vs2005,并將cmake的"where to build the binaries"設(shè)置為這個(gè)目錄。
- 然后點(diǎn) configure,在彈出的對(duì)話框內(nèi)選擇 Visual Studio?8 2005。
- 你可根據(jù)你的系統(tǒng)修改選項(xiàng),修改后再次選擇“Congfigure”,完成后選擇“Generate”。
???? 2編譯 OpenCV Debug和Release版本庫(kù)(若有幾個(gè)錯(cuò)誤可以再次操作,就可以了;再次操作仍然有錯(cuò)誤,可以先忽略)
???? 完成上一步驟后,將在c:\OpenCV2.3.1\opencv\build\vs2005目錄下生成OpenCV.sln的VC Solution File,請(qǐng)用vs2005打開(kāi)OpenCV.sln,然后執(zhí)行如下操作:
- 在Debug下,選擇Solution Explorer(解決方案資源管理器)里的 Solution OpenCV(解決方案“OpenCV”),點(diǎn)右鍵,運(yùn)行"Rebuild Solution";如編譯無(wú)錯(cuò)誤,再選擇INSTALL項(xiàng)目,運(yùn)行"Build"。
- 在Release下,選擇Solution Explorer里的 Solution OpenCV,點(diǎn)右鍵,運(yùn)行"Rebuild Solution";如編譯無(wú)錯(cuò)誤,再選擇INSTALL項(xiàng)目,運(yùn)行"Build"。
? 全部運(yùn)行完畢后,針對(duì)你的系統(tǒng)的OpenCV庫(kù)就生成了。
?
5 配置Vs2005
???1 配置include路徑
也即告訴Vs去什么地方尋找OpenCV的頭文件,打開(kāi)Vs,選擇菜單“工具”->“選項(xiàng)”->“項(xiàng)目和解決方案”->“VC++目錄”->“包含文件”,包含c:\OpenCV2.3.1\opencv\build\vs2005\install\include;c:\OpenCV2.3.1\opencv\build\vs2005\install\include\opencv;c:\OpenCV2.3.1\opencv\build\vs2005\install\include\opencv2.? 如圖(是VS2005文件夾下的install,前面的是相對(duì)路徑,不必完全一樣)
?2配置lib路徑
?? 也即告訴VC去什么地方尋找OpenCV的庫(kù)文件。
- 自己編譯的庫(kù),庫(kù)目錄為:c:\OpenCV2.3.1\opencv\build\vs2005\install\lib,如圖
?
3設(shè)置環(huán)境變量(非常重要,出現(xiàn)問(wèn)題首先檢查這里)
剛才設(shè)置的是動(dòng)態(tài)庫(kù),因此還需要將OpenCV的dll文件所在的目錄加入Path環(huán)境變量。
自己編譯的庫(kù),dll目錄為:c:\OpenCV2.3.1\opencv\build\vs2005\install\bin
?? 如下圖所示將dll目錄文件路徑加到:系統(tǒng)環(huán)境變量Path中。加入后可能需要注銷(xiāo)當(dāng)前Windows用戶(hù)(或重啟)后重新登陸才生效。
環(huán)境變量不要太混亂,比如userA配置的同一版本的環(huán)境變量,userB也配置了,有可能build無(wú)問(wèn)題,運(yùn)行時(shí)出現(xiàn)“無(wú)法啟動(dòng)此程序,因?yàn)橛?jì)算機(jī)中丟失XXX.dll文件的情況”并且提示你重裝,千萬(wàn)不要重裝。
?
使用OpenCV 2.3.1編程
?? 1 打開(kāi)vs2005新建一個(gè)win32程序,
? 2。輸入以下程序,(需要將lena.jpg文件放在項(xiàng)目目錄下,即與生成的.exe文件同位置)。
[html]?view plain?copy
?print?
1.? //?opencv2.3.1test.cpp?:?定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。??
2.? //??
3.? ??
4.? #include?"stdafx.h"??
5.? ??
6.? #include?<opencv2/opencv.hpp>???
7.? ??
8.? using?namespace?std;??
9.? ??
10. using?namespace?cv;???
11. ??
12. ??
13. int?_tmain(int?argc,?_TCHAR*?argv[])??
14. {??
15. ????char*?imagename?=?"k2.jpg";//從文件中讀入圖像??
16. ??
17. ????IplImage*?img?=?cvLoadImage(?"k2.jpg",1?);??
18. ??
19. ????if(!img)//如果讀入圖像失敗??
20. ??
21. ????{??
22. ??
23. ????????fprintf(stderr,"Can?not?load?image?%s\n",?imagename);??
24. ??
25. ????????return?-1;??
26. ??
27. ????}???
28. ??
29. ????cvShowImage("image",?img);??
30. ??
31. ????waitKey();??
32. ??
33. ????return?0;??
34. ??????
35. }??
3為項(xiàng)目配置增加[附加依賴(lài)項(xiàng) AdditionalDependencies]:
Project-propertes-linker-input在[鏈接器 LINKER]的[輸入INPUT]中,
為項(xiàng)目的Debug配置增加?[附加依賴(lài)項(xiàng) AdditionalDependencies]:
opencv_calib3d231d.lib
opencv_contrib231d.lib
opencv_core231d.lib
opencv_features2d231d.lib
opencv_flann231d.lib
opencv_gpu231d.lib
opencv_highgui231d.lib
opencv_imgproc231d.lib
opencv_legacy231d.lib
opencv_ml231d.lib
opencv_objdetect231d.lib
opencv_ts231d.lib
opencv_video231d.lib
(若無(wú)此操作,將會(huì)在debug下報(bào)錯(cuò):
errorLNK2001: unresolved external symbol _cvCreateFileCapture
errorLNK2001: unresolved external symbol _cvWaitKey
errorLNK2001: unresolved external symbol _cvGetSize
errorLNK2001: unresolved external symbol _cvReleaseCapture
errorLNK2001: unresolved external symbol _cvCalibrateCamera2
errorLNK2001: unresolved external symbol _cvDrawChessboardCorners
errorLNK2001: unresolved external symbol _cvQueryFrame
errorLNK2001: unresolved external symbol _cvReleaseMat
errorLNK2001: unresolved external symbol _cvSave
……)
?
?
?(可根據(jù)實(shí)際需要?jiǎng)h減)
注意,請(qǐng)打開(kāi)了新編輯窗口(即點(diǎn)擊了“...”按鈕)“附加依賴(lài)項(xiàng)”,并一條一條分別加入,一條一行(一個(gè)回車(chē)),(注意行末不要加";")否則會(huì)出現(xiàn)類(lèi)似以下錯(cuò)誤:1>LINK : fatalerror LNK1104: 無(wú)法打開(kāi)文件“…….lib”???
如果下載的OpenCV不是2.3.1版本,請(qǐng)將"XXX231d.lib"中的"231"更改為對(duì)應(yīng)的版本號(hào),
例如:下載OpenCV 2.4.0,則統(tǒng)一改為"XXX240d.lib",否則會(huì)出現(xiàn)類(lèi)似以下錯(cuò)誤:1>LINK : fatal errorLNK1104: 無(wú)法打開(kāi)文件“XXX.lib”
?
為項(xiàng)目的Release配置增加[附加依賴(lài)項(xiàng) Additional Dependencies]:
?
?
opencv_calib3d231.lib
opencv_contrib231.lib
opencv_core231.lib
opencv_features2d231.lib
opencv_flann231.lib
opencv_gpu231.lib
opencv_highgui231.lib
opencv_imgproc231.lib
opencv_legacy231.lib
opencv_ml231.lib
opencv_objdetect231.lib
opencv_ts231.lib
opencv_video231.lib
(若無(wú)此操作,將會(huì)在relesae下報(bào)錯(cuò):
errorLNK2001: unresolved external symbol _cvCreateFileCapture
errorLNK2001: unresolved external symbol _cvWaitKey
errorLNK2001: unresolved external symbol _cvGetSize
errorLNK2001: unresolved external symbol _cvReleaseCapture
errorLNK2001: unresolved external symbol _cvCalibrateCamera2
errorLNK2001: unresolved external symbol _cvDrawChessboardCorners
errorLNK2001: unresolved external symbol _cvQueryFrame
errorLNK2001: unresolved external symbol _cvReleaseMat
errorLNK2001: unresolved external symbol _cvSave
……)
?
?(可根據(jù)實(shí)際需要?jiǎng)h減)*?
?如圖:為bebug加入依賴(lài)項(xiàng)
??
參考資料http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.3.1
?
?
?
上述所有過(guò)程完成,若還有問(wèn)題,如“應(yīng)用程序無(wú)法正常啟動(dòng)(0xc0150002)”,則新建環(huán)境變量TBB:
變量名:TBB
變量值:C:\opencv2.3.1\opencv\build\common\tbb\ia32\vc8
?
?
?
?
主程序應(yīng)當(dāng)包含的頭文件:
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <string>
#include <iostream>
using namespace std;
總結(jié)
以上是生活随笔為你收集整理的OpenCV2.3.1+VS2005配置方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 目前国内最热门的四款远程桌面控制软件
- 下一篇: sql server 数字转大写