opencv的配置问题
- 格式:docx
- 大小:794.69 KB
- 文档页数:20
OpenCV 2.4.4 安装与配置步骤一:安装OpenCV/projects/opencvlibrary/files/opencv-win/2.4.4/1.从以上地址下载OpenCV2.4.4,执行exe文件,将文件安装到所需目录。
2.建立环境变量并添加到系统路径(以将文件安装在D:\opencv为例):i) 右键点击桌面的计算机图标,选择“属性”,跳出如下窗口:ii) 点击“高级系统设置”,跳出如下窗口:iii) 点击“高级”选项卡下的“环境变量”,跳出如下窗口:iv) 点击“系统变量”下的“新建”,“变量名”输入OPENCV_BUILD,“变量值”输入D:\opencv\build(如果OpenCV解压在别的目录,请输入该目录路径。
比如,如果在C盘ProgramFiles文件夹建立了名为OpenCV的文件夹,并在其中解压,那么输入的目录就为C:\ProgramFiles\OpenCV\opencv\build,总之目录一直到build文件夹),点击“确定”。
v) 双击“用户变量”中的PATH,在跳出的窗口中输入变量值为%OPENCV_BUILD%\x86\vc10\bin (如果电脑是64位系统的,请把“x86”改为“x64”;并请确保使用的是VS 2010,因为vc10文件夹针对的是VS 2010)。
步骤二:在VS2010中配置OpenCV1. 打开VS 2010,新建一个项目(Win32控制台或MFC 都可以)。
2. 建立Debug 属性表。
i) 点击“视图”菜单中的“属性管理器”。
ii) 右键“Debug|Win32”,选中“添加新项目属性表”。
iii) 输入名称为OpenCVProjectDebug。
iv) 建立后双击属性管理器中的OpenCVProjectDebug,对其进行编辑。
v) 选择“通用属性”下的“VC++目录”,点击“包含目录”,然后点下拉条,单击“<编辑…>”。
/8/2记录安装opencv旳过程和遇到旳问题以及解决措施。
在笔记本上安装vs,安装opencv,解压后,设立了“系统变量”,Path里涉及了64位和86旳bin链接D:/Program Files/opencv/build/x86/bin以及64位。
创立项目,选择编译器旳时候,直接新建x64了,然后新建属性表,新建了两个,名字为opencvx64.props和opencvx64release.props,发现系统没有自动辨认属性表,此时旳属性管理器是这样旳。
由于疑惑,觉得自己建立旳属性表是不是/不能用或者不能达到同步,于是寻找途径,从c:/user/username/appdata/MicroSoft/MSbuild/下找到了er这个属性表,导入到了项目中。
修改旳时候发现,debug和release旳两个属性表是同样旳旳时候,更改链接库“外部依赖项”时,debug和release两个部分,没有措施辨别开来。
说一下这里旳设立,一种是“VC++目录”这边,这里边旳页面“涉及目录”下加入了D:/Program Files/opencv/build/以及D:/Program Files/opencv/build/opencv和D:/Program Files/opencv/build/opencv2这三个目录。
然后在“库目录”下加入了D:/Program Files/Opencv/build/x64/lib这个目录。
这样就是整个设立。
Debug和release两个属性表旳设立事实上是同样旳,由于链接库旳外部依赖项没有措施辨别,那就是一种东西。
然后就设立了整个项目旳属性,右键点击最上面工程名那里设立。
由于项目旳属性继承了底下旳属性,因此无需设立,但在“链接库”旳“外部依赖项”这里加入了此外旳debug (或者release)旳lib列表。
以上,这样旳设立,无论如何也没有措施通过编译。
尝试了完善win32旳设立,除了在VC++目录这边是选用旳x86目录,其他没有区别,也没有用。
vsc++配置opencv(1)1.vc++配置opencv环境:vs2013准备⼯作:1.安装opencv。
opencv各版本间存在API差异,opencv提供相应版本的vc⽂件,在其安装⽬录 ..opencv\build\x86 ⽬录下,个⼈觉得引⽤与当前使⽤vs版本最接近的⽬录⽂件就可以。
opencv安装⽬录下的引⽤lib及bin⽂件提供x86和x642.配置环境变量。
⾸先在我的电脑右键属性,在系统属性中选择⾼级,打开设置环境变量的界⾯。
其中上半部分为⽤户变量,下半部分为系统变量。
(1)在⽤户变量中添加PATH变量,值为:安装⽬录\opencv\build\x86\vc12\bin;安装⽬录\opencv\build\x64\vc12\bin(2)在⽤户变量中添加OPENCV,值为:安装⽬录\opencv\build过程中变量如果存在,将值添加⾄末尾,以;间隔配置好了环境变量,接下来配置的是vc++的⼯程项⽬了,⽤来在vc++中使⽤opencv。
打开vs,新建项⽬,选择vc++,32位控制台应⽤程序,⼯程命名为opencvTest。
在项⽬⼯程上右键,属性,打开属性页⾯。
属性中选择配置信息,配置中配置选项选择为Debug。
点击左侧导航中的 vc++⽬录。
编辑其中的包含⽬录和库⽬录。
注:此处为单独的项⽬配置信息,如果想将此配置导出属性⽂件供各个项⽬使⽤,选择vs中的视图-》其他窗⼝-》属性管理器在属性管理器项⽬上右键 =》添加新项⽬属性表,为属性表命名并存放于公共⽬录下,以⽅便后⾯的项⽬引⽤,在属性管理器中双击新建的属性其具体配置和下⾯的⼀样。
配置好属性表之后,下次使⽤就可以在属性管理器中右键=》添加现有属性表,找到属性⽂件,添加即可使⽤。
此处以单独项⽬的配置信息为例:其中,包含⽬录中引⼊的路径是 opencv安装路径\opencv\build\include 及其⼦项。
库⽬录是其lib⽂件的所在⽬录,这⾥把x86和x64的都引⼊进来了。
OpenCV在Windows中的配置以及常见错误解决方案(1)OpenCV配置方法在Windows环境变量中新建两个环境变量,如下:变量值OPENCV_LIB C:\OpenCV\libOPENCV_INC C:\OpenCV\include在环境变量为path的值后面加入C:\OpenCV\bin和C:\OpenCV\common\tbb\ia32\vc10在visual studio属性管理器中配置如下:Figure 1 VC++ Directories 添加opencv的include目录和opencv的lib目录Figure 2 Linker->Input->Additional Dependencies 添加编程需要的lib(在opencv对应的lib目录下)说明:(1)以上.lib文件,以d结尾的表示运行在debug模式下,没有以d结尾的表示运行在release模式下(2)Figure 2中的图有问题,需要右击属性管理器下的debug,点击属性,然后把.lib文件中以b结尾的文件添加到linker中;对于release,把不是以b 结尾的文件添加到linker里面(3)如果在Visual Studio开启的时候,修改环境变量,只有当VS重启后才有效。
(4)需要注意的是,文件路径需要写成Mat img = imread("E:/great.jpg"); 测试程序:#include "opencv2/opencv.hpp"using namespace std;using namespace cv;int main(){Mat img = imread("E:/great.jpg"); imshow("Image", img);waitKey(0);return 0;}Linker->Input->Additional Dependencies Debug for OpenCV231opencv_calib3d231d.libopencv_contrib231d.libopencv_core231d.libopencv_features2d231d.libopencv_flann231d.libopencv_gpu231d.libopencv_haartraining_engined.libopencv_highgui231d.libopencv_imgproc231d.libopencv_legacy231d.libopencv_ml231d.libopencv_objdetect231d.libopencv_ts231d.libopencv_video231d.libRelease for OpenCV231opencv_calib3d231.libopencv_contrib231.libopencv_core231.libopencv_features2d231.libopencv_flann231.libopencv_gpu231.libopencv_haartraining_engine.libopencv_highgui231.libopencv_imgproc231.libopencv_legacy231.libopencv_ml231.libopencv_objdetect231.libopencv_ts231.libopencv_video231.libDebug for OpenCV242opencv_calib3d242d.libopencv_contrib242d.libopencv_core242d.libopencv_features2d242d.lib opencv_flann242d.libopencv_gpu242d.libopencv_haartraining_engined.lib opencv_highgui242d.libopencv_imgproc242d.libopencv_legacy242d.libopencv_ml242d.libopencv_nonfree242d.libopencv_objdetect242d.lib opencv_photo242d.libopencv_stitching242d.lib opencv_ts242d.libopencv_video242d.libopencv_videostab242d.libRelease for OpenCV242opencv_calib3d242.libopencv_contrib242.libopencv_core242.libopencv_features2d242.lib opencv_flann242.libopencv_gpu242.libopencv_haartraining_engine.lib opencv_highgui242.libopencv_imgproc242.libopencv_legacy242.libopencv_ml242.libopencv_nonfree242.libopencv_objdetect242.libopencv_photo242.libopencv_stitching242.libopencv_ts242.libopencv_video242.libopencv_videostab242.lib。
OpenCV2.4.8配置方法解压双击下载的opencv.exe文件解压至指定位置。
出现opencv文件夹。
环境变量的设置计算机(右键)->属性->左侧控制主板页,高级系统设置->系统属性高级文件单->环境变量。
这里有用户变量、系统变量两个框,在哪个框里添加都一样,为不影响电脑其他系统的变量设置,选择在用户变量中添加变量。
在用户变量栏中新建PATH变量,设值为D:\Program Files\opencv248\build\x86\vc10\bin。
注意:build文件之后路径选择根据需要变化,如build\要编译的程序位数(32位对应x86,64位对应x64)\使用的编译环境VS 版本(2010对应vc10,2012对应vc11,2013对应vc12)\bin。
还可设置宏变量OPENCV为D:\Program Files\opencv248\build\,其包含了opencv.exe文件解压的大目录位置。
在VS中的属性设置中,解压文件夹大目录可由$(OPENCV)字段代替,这样如果更改了解压后得到的opencv文件夹位置也只需修改OPENCV变量即可。
但对一般个人用户的意义不大。
设置完之后重启计算机。
对VS项目的属性设置新建一个Win32控制台应用程序。
由视图(菜单栏)->属性管理器。
在属性管理器中可见刚才所见项目,双击展开可见Debug|Win32、Release|Win32两个文件夹,也都双击展开。
先设置Debug属性表。
右键Debug|Win32在中文件夹中添加新项目属性表,为为区分opencv版本和要编译的程序位数,名称建议为opencv248x86Debug,双击出现属性页,在左侧通用属性目录下单击VC++,编辑右侧包含目录添加build文件下的include文件地址,如:D:\Program Files\opencv248\build\include。
OpenCV安装与配置1.下载和安装OpenCVSDK。
官网:/找到OpenCVWindows版下载下来;得到自解压程序“opencv2.x.x.exe”。
2.配置环境变量。
计算机->属性->高级系统设置->高级->环境变量->(双击)系统PATH->添加相应路径,与之前已经有的值用“;”分开。
添加:opencv\build 86\vc12\bin这个路径。
3.工程包含(include)目录配置。
文件->新建->项目->选择【Win32控制台程序】,命名test1,选择路径,单击确定;进入【Win32应用程序向导】,下一步,勾选空项目;解决方案资源管理器【源文件】右键单击->添加->新建项,新建一个.cpp文件。
【菜单栏】里单击【视图】->【属性管理器】;之后展开【Debug|Win32】->【erDirectories】,右键单击【属性】,打开属性页面.【通用属性】->【VC++目录】->【包含目录】添加3个目录:D:\ProgramFiles\opencv\build\include;D:\ProgramFiles\opencv\build\include\opencv;D:\ProgramFiles\opencv\build\include\opencv2;4.工程库(lib)配置。
【通用属性】->【VC++目录】->【库目录】添加:D:\ProgramFiles\opencv\build 86\vc12\lib;D:\ProgramFiles\opencv\build 86\vc12\statib;5.链接库配置。
【通用属性】->【链接器】->【输入】->【附加依赖项】后输入:D:\opencv\opencv\build\includeD:\opencv\opencv\build\include\opencvD:\opencv\opencv\build\include\opencv2D:\opencv\opencv\build 86\vc12\libD:\opencv\opencv\build 86\vc12\staticlibopencv_ts300d.libopencv_world300d.libIlmImfd.liblibjasperd.liblibjpegd.liblibpngd.liblibtiffd.liblibwebpd.libopencv_calib3d300d.libopencv_core300d.libopencv_features2d300d.libopencv_flann300d.lib opencv_highgui300d.lib opencv_imgcodecs300d.lib opencv_imgproc300d.lib opencv_ml300d.lib opencv_objdetect300d.lib opencv_photo300d.lib opencv_shape300d.lib opencv_stitching300d.lib opencv_superres300d.lib opencv_video300d.lib opencv_videoio300d.lib opencv_videostab300d.lib Zlibd.libopencv_ts300.lib opencv_world300.lib IlmImf.libippicvmt.lib libjasper.liblibjpeg.liblibpng.liblibtiff.liblibwebp.libopencv_calib3d300.lib opencv_core300.lib opencv_features2d300.lib opencv_flann300.libopencv_highgui300.libopencv_imgcodecs300.libopencv_imgproc300.libopencv_ml300.libopencv_objdetect300.libopencv_photo300.libopencv_shape300.libopencv_stitching300.libopencv_superres300.libopencv_video300.libopencv_videoio300.libopencv_videostab300.libZlib.lib6.在Windows下加入OpenCV动态链接库。
Win10/win7+64位+Opencv2.4.9+vs2010配置问题(c++语言环境)1 安装软件Opencv2.4.9下载地址:/s/1pLAk6p1 密码:l1vkVs2010下载地址:/s/1pLgyxV9 密码:kadk安装vs2010选择c++环境opencv其实就是一个解压后的文件夹,记住解压后的路径,后面配置环境变量要用,打开之后如下图,包含两个子文件build和sources,检查一下opencvbuild/include路径下有opencv 和opencv2两个子文件,include/x86和include/x64路径下都有vs10,vs11,vs12,这些是不同版本vs的二进制文件,本文要用到的是vs10,如果读者用的是更早以前的vs(比如vs2008其实就是vs9)则需要用CMAKE工具来编译你所用版本的二进制代码,此处不做详述,毕竟怎么简单怎么来,当今时代效率最重要。
2 opencv环境变量配置右键计算机属性-高级系统变量-弹出系统属性框-高级右下角-环境变量-出现环境变量对话框。
选择用户变量或者系统变量中的path变量,双击右边的值,或者单机然后编辑,把地址D:\ProgramFiles\OPENCV\opencv\build\x86\vc10\bin和D:\Program Files\OPENCV\opencv\build\x64\vc10\bin(两个地址粘贴时注意用英文分号;隔开)如果是32位系统就粘贴x86那个就行了。
粘贴到值中,保存,上面两个地址注意是你的解压地址,下面步骤的地址同理也是你的解压地址。
3 重启计算机4 工程目录配置1、打开vs2010,新建-项目-win32控制台应用程序-弹出win32应用程序导向下一步-附加项-空项目-完成2、视图-属性管理器-出现属性管理器3、先配置debug|win32(申明一下不管笔记本系统是64位还是32位,一般编写代码的环境都是win32),右键debug|win32-属性或直接双击debug|win32,出现属性页-通用属性vc++目录-包含目录添加D:\Program Files\OPENCV\opencv\build\includeD:\Program Files\OPENCV\opencv\build\include\opencvD:\Program Files\OPENCV\opencv\build\include\opencv2确定库目录下添加D:\Program Files\OPENCV\opencv\build\x86\vc10\lib确定249代表opencv版本号,debug要粘贴的文件都带d,而release则不带。
opencv问题及解决办法1:编译通过,但是运行的时候会提示缺少一些dll 文件,如果是缺少opencv_core243d.dll 和opencv_highgui243d.dll,那么从E:\Program Files\OpenCV243\opencv\build\x86\vc10\bin中复制到C:\Windows\System32 中即可;如果是缺少msvcr100d.dll 和msvcp100d.dll,可以到HYPERLINK"/doc/c6561848.html,/dll/msvcr 100d_dll.html"/doc/c6561848.html,/dll/msvcr1 0 0d_dll.html上下载,然后同样放到C:\Windows\System32 中。
现在,再次运行你的程序,是不是成功了呢?2、如果需要在Release 模式下工作,只需要在4(1)中选择Release|Win32,打开/doc/c6561848.html,er 属性页,用相同的方式加入路径和依赖附加项,但是此时依赖附加项的名称中的243d 的d 要去掉,因为它代表debug。
至此,已经完全实现了最新版本的OpenCV 和VS 的配置,开始享受它的完美的性能吧!遇到的问题及解决办法:question1:fatal error C1083: 无法打开包括文件:“opencv.hpp”: No such file or directorySolution:步骤1:定位报“fatal error C1083:”错误的文件,找到它所在的目录。
步骤2:添加该项目的附加路径将opencV.hpp文件所在的文件夹加入到【工具】—【选项】—【项目和解决方案】—【VC++目录】的包含文件中就行了2:)刚开始测试的时候出现这样的问题:fatal error C1083: 无法打开包括文件:“opencv2/core/core_c.h”: No such file or directory 这个主要是包含目录下的include配置出错了,改成E:\Program Files\\opencv243\build\include\opencv2E:\Program Files\\opencv243\build\include\opencvE:\Program Files\\opencv243\build\include注:(上面只是参考,具体目录根据自己的情况定)3:error LNK2019: 无法解析的外部符号"void __cdecl cv::imshow(class std::basic_string<char,struct< p=""> std::char_traits,class std::allocator > const &,class cv::_InputArray const &)"(?imshow@cv@@YAXABV?$basic_string@DU?$char_traits@ D@std@@V?$allocator@D@2@@std@@ABV_InputArray@1@ @Z),该符号在函数 _main 中被引用1>main.obj : error LNK2019: 无法解析的外部符号"public: __thiscall cv::_InputArray::_InputArray(class cv::Mat const &)" (??0_InputArray@cv@@QAE@ABVMat@1@@Z),该符号在函数_main 中被引用1>main.obj : error LNK2019: 无法解析的外部符号"class cv::Mat __cdecl cv::imread(classstd::basic_string,class std::allocator > const &,int)"(?imread@cv@@YA?AVMat@1@ABV?$basic_string@DU?$c har_traits@D@std@@V?$allocator@D@2@@std@@H@Z),该符号在函数_main 中被引用1>main.obj : error LNK2019: 无法解析的外部符号"void __cdecl cv::fastFree(void *)" (?fastFree@cv@@YAXPAX@Z),该符号在函数"public: __thiscall cv::Mat::~Mat(void)" (??1Mat@cv@@QAE@XZ) 中被引用1>main.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall cv::Mat::deallocate(void)"(?deallocate@Mat@cv@@QAEXXZ),该符号在函数"public: void __thiscall cv::Mat::release(void)"(?release@Mat@cv@@QAEXXZ) 中被引用1>C:\Users\abc\Desktop\OpenCV\Debug\test.exe : fatal error LNK1120: 5 个无法解析的外部命令可能的原因是什么?菜单Project -> Properties -> Configuration Properties -> Linker -> Input在additional dependencies中加入cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib等需要的库。
VC++6.0环境下的OpenCV配置1. 下载OpenCV安装程序(1.0版本)。
假如要将OpenCV安装到C:\Program Files\OpenCV。
在安装时选择"将 \OpenCV\bin加入系统变量"。
或安装完成后手动添加环境变量“C:\Program Files\OpenCV\bin”。
第一步的手动添加环境变量是在我的电脑->右键->系统属性里->环境变量->用户变量添加C:\Program Files\OpenCV\bin路径2.启动VC++6.0,菜单Tools->Options->Directories:先设置lib路径,选择Library files,在下方填入路径: C:\Program Files\OpenCV\lib然后选择include files,在下方填入路径:C:\Program Files\OpenCV\cxcore\includeC:\Program Files\OpenCV\cv\includeC:\Program Files\OpenCV\cvaux\includeC:\Program Files\OpenCV\ml\includeC:\Program Files\OpenCV\otherlibs\highguiC:\Program Files\OpenCV\otherlibs\cvcam\include3.每创建一个将要使用OpenCV的VC Project,都需要给它指定需要的lib。
菜单:Project->Settings,然后将Setting for选为All Configurations,然后选择右边的link标签,在Object/library modules附加上:cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib如果不需要这么多lib,你可以只添加你需要的lib。
1.OpenCV的安装与配置⑴设置电脑环境变量打开电脑属性(方法桌面点击鼠标右键),高级系统设置-高级,环境变量,系统变量-Path(编辑-新建),输入或者选择相应路径D:\opencv\build\x86\vc11\bin,如下图1-2所示。
图1-2 设置电脑环境变量⑵用VS2012新建一个C++的win32控制台项目:打开VS2012,文件——新建——项目,Visual C++,Win32,Win32控制台应用程序——空项目,源文件——添加——新建项——C++文件——main.cpp,如下图1-3所示。
图1-3 新建一个C++项目⑶项目配置修改项目的相关配置,具体为:项目--属性--配置属性--VC++目录,如下图1-4所示。
Include path(包含目录):D:\opencv\build\includeD:\opencv\build\include\opencvD:\opencv\build\include\opencv2Lib path(库目录):D:\opencv\build\x86\vc11\libD:\opencv\build\x86\vc11\staticlib链接器--输入--附加依赖项:(D:\opencv\build\x86\vc11\lib目录下的所有lib文件名)。
opencv_ts300d.libopencv_world300d.lib图1-4 项目配置2.OpenCV读入一个图像文件⑴在工程文件夹下放置一张图片,图片的名字可以自己设置,但是必须与程序中图片名字一致,注意图片的格式为.jpg:图1-5 放置待显示图片⑵OpenCV读入一个图像文件输入主函数:#include <opencv2/opencv.hpp>using namespace std;#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")int main(){const char *pstrImageName = "cute.jpg";const char *pstrWindowsTitle = "OpenCV第一个程序(/MoreWindows)";//注释:IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);//注释:cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);//注释:cvShowImage(pstrWindowsTitle, pImage);//注释:cvWaitKey();//注释:cvDestroyWindow(pstrWindowsTitle);//注释:cvReleaseImage(&pImage);//注释:return 0;}图1-6 工程中复制代码点击F5,如下图所示,可以显示你刚才放置的那张图片就成功啦!图1-5 输出图像。
1.下载和安装OpenCV SDKVS2010不用说,肯定都安装了吧。
来说说当前最新的OpenCV版本2.4.8(2014年2月24日)的下载和安装。
与其说是安装,不如叫解压更加合适,因为我们下载的exe安装文件就是一个自解压程序而已。
在官网:/上找到OpenCV windows版下载下来。
下载完后得到文件OpenCV 2.4.8,双击后会提示解压到某个地方,推荐放到D:\Program Files\下,比如D:\Program Files,(因为OpenCV项目文件打包的时候,根目录就是opencv,所以我们不需要额外的新建一个名为opencv的文件夹,然后再解压,那是多此一举的事情)然后点击Extract按钮。
等一段时间,OpenCV2.4.8近3个多G的文件就解压到了D:\Program Files下。
其中,build里面是使用OpenCV相关的文件,我们如果只是使用OpenCV的话呢,就只用管build里面的内容。
下面的sources文件夹你嫌烦,你嫌占硬盘空间,完全可以删掉。
但是需要注意的是,官方示例集,也就是samples文件夹里面的示例程序,在sources文件夹里面躺着呢,所以,如果真是要删的话,还是想清楚哦。
sources里面是源代码。
想查看完整的源代码需要用cmake来“解包”,如何“解包”大家百度一下就可以,或者下次浅墨来专门讲一讲。
这里就先不多说了。
2.配置环境变量有些奇怪的是,浅墨在经历OpenCV 2.4.6,OpenCV 2.4.7,OpenCV 2.4.8这三个版本之间转换的时候,这三个版本的OpenCV存放在硬盘的不同的目录下。
但就没动过这步里面的环境变量,或许新版本的OpenCV已经弱化了环境变量的配置。
所以,大家可以先跳过这步,如果最终配置出来报错的话呢,可以考虑下根据实际情况加上这步的配置。
这步的配置方法如下:计算机->(右键)属性->高级系统设置->高级(标签)->环境变量->(双击)path(用户,系统里面的path任选其一)->在变量值里面添加相应的路径。
对于32位系统,就添加:”……opencv\build\x86\vc10\bin”而对于64位系统,可以两个都添加上:”……opencv\build\x86\vc10\bin”和”……opencv\build\x64\vc10\bin”,这样,到时候才可以在编译器Win32和X64中来回切换都吃得开,游刃有余~例如,浅墨的就是D:\ProgramFiles\opencv\build\x64\vc10\bin;D:\ProgramFiles\opencv\build\x86\vc10\bin注:变量值实际为bin文件夹的路径;D表示OpenCV安装于D盘;X64表示运行系统环境位64位系统,若安装于32位系统,应为X86;vc10表示编译环境为Microsoft Visual Studio 2010;变量添加完成后需要注销系统,才会生效。
3.工程包含(include)目录的配置之前看过的好多博文都说“每次新建工程都要重新配置”,其实不用这样麻烦的。
看我之前DirectX配置的相关博文的朋友们应该都知道,有一招叫属性管理器,点进去,到<视图>--<属性管理器>在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->erDirectories(反键属性,或者双击)即可打开属性页面。
打开熟悉的属性页面后,就是一番配置了。
首先是在【通用属性】->【VC++目录】->【包含目录中】添加上D:\Program Files\opencv\build\includeD:\Program Files\opencv\build\include\opencvD:\Program Files\opencv\build\include\opencv2 这三个目录。
当然,这是之前把OpenCV解压到D:\Program Files\下的情况。
实际的路径还要看你自己把OpenCV解压到了哪个目录下,根据实际情况来调节。
4.工程库(lib)目录的配置其实这步和上一步差不多,属性管理器”工作区中,点击项目->Debug|Win32->erDirectories(反键属性,或者双击)即可打开属性页面。
【通用属性】->【VC++目录】->【库目录】。
添加上D:\Program Files\opencv\build\x86\vc10\lib这个路径。
(最好不要复制粘贴浅墨给出的路径,而是自己去预览里面指定出来,这样会准确得多)(感谢小如风童鞋,之前给出的路径D:\Program Files\opencv\build\x86\vc10\lib里少个空格,直接复制浅墨给出的上面路径的童鞋就会出现“无法打开错误1 error LNK1104: 无法打开文件“opencv_calib3d248.lib”类似的错误”,现已更正)——————浅墨于2014年4月3日这里选择x86还是x64是一个常常令人困惑的问题。
当然,对于32位操作系统,铁定就是选x86了。
如果是64位操作系统,很多童鞋会想当然自作聪明地选择x64,其实不然。
正确的理解是这样的:不管你是32位还是64位操作系统,只用管你用win32编译器还是X64编译器。
其实配置选择什么跟64位还是32位系统没有直接的关系,而是在于你在编译你的程序的时候是使用那个编译器。
编译器选的是win32,就用x86编译器选的是X64,就用X64。
不过一般情况下,都是用的win32的X86编译器。
所以,无论32还是64位操作系统,配置文件最好都选择x86版的另外,这里的vc10表示vs2010,如果是其他版本的visual studio,稍微要微调一下。
5.链接库的配置属性管理器”工作区中,点击项目->Debug|Win32->erDirectories(反键属性,或者双击)即可打开属性页面。
【通用属性】->【链接器】->【输入】->【附加的依赖项】添加如下的内容:opencv_calib3d248d.lib opencv_contrib248d.lib opencv_core248d.lib opencv_features2d248d.lib opencv_flann248d.lib opencv_gpu248d.lib opencv_highgui248d.lib opencv_imgproc248d.lib opencv_legacy248d.lib opencv_objdetect248d.lib opencv_ts248d.libopencv_video248d.lib opencv_nonfree248d.libopencv_ocl248d.lib opencv_photo248d.lib opencv_stitching248d.lib opencv_superres248d.lib opencv_videostab248d.lib opencv_calib3d248.lib opencv_contrib248.lib opencv_core248.lib opencv_features2d248.lib opencv_flann248.lib opencv_gpu248.lib opencv_highgui248.lib opencv_imgproc248.lib opencv_legacy248.lib opencv_ml248d.lib opencv_objdetect248.lib opencv_ts248.libopencv_video248.lib opencv_nonfree248.lib opencv_ocl248.lib opencv_photo248.lib opencv_stitching248.lib opencv_superres248.lib opencv_videostab248.lib需要注意的是,所粘贴内容即为D:\opencv\build\x86\vc10\lib下所有lib库文件的名字;其中的248代表我们的OpenCV版本为2.4.8,若是其他版本的配置则在这里要进行相应的更改,比如说2.4.6版的OpenCV,那么这里的opencv_calib3d248d.lib就要改成opencv_calib3d246d.lib了.Debug文件库名有d结尾,Release没有,如opencv_ts248d.lib和opencv_ts248.lib 不过我一般是在这里把带d和不带d的统统写在这里,因为这里是以后创建所有工程时都会继承的公共属性。
注意:按照如上的这种方式来配置,也许会出现debug下可以运行但是release下不能运行的情况(因为字符串读取问题引起的诸如图片载入不了,报指针越界,内存错误等等),这算是OpenCV自2.4.1以来的一个bug。
如果出现上述情况,打开当前工程(注意是当前工程的属性页,不是通用属性页)的属性页,debug或者release哪个报错,就把对应的带d或不带d的lib添加到【“当前”工程属性】->【链接器】->【输入】->【附加的依赖项】下即可。
——————浅墨2014年3月17日注类似错误如图:6.在Windows文件夹下加入OpenCV动态链接库这一步是各种介绍OpenCV的配置的相关博文中都没写出来的。
根据这些博文配置出来的环境,在运行基于OpenCV的程序的时候,往往会得到这样类似的结果:这种问题最简单粗暴的方法,是把相关的dll都拷贝到Windows操作系统的目录下。
如果你的Windows安装在C盘,那么路径就是C:\Windows。
按照之前我的OpenCV的存放环境,这些dll存放在D:\Program Files\opencv\build\x86\vc10\bin目录下。
到这个目录下,【Alt+A】全选,【Alt+C】拷贝,然后转到C:\Windows下面,【Alt+V】复制,简单粗暴地就完成了。
恩,环境配置大功告成,我们来测试一下成果吧~7.最终的测试就用载入并显示一张图片到窗口的程序,用于我们的配置测试吧。
新建一个空项目的控制台应用程序,新建一个cpp文件,然后粘贴如下代码:[cpp]view plaincopyprint?1.#include<iostream>2.#include <opencv2/core/core.hpp>3.#include <opencv2/highgui/highgui.hpp>4.5.ing namespace cv;7.8.9.int main()10.{11. // 读入一张图片(游戏原画)12. Mat img=imread("pic.jpg");13. // 创建一个名为 "游戏原画"窗口14. cvNamedWindow("游戏原画");15. // 在窗口中显示游戏原画16. imshow("游戏原画",img);17. // 等待6000 ms后窗口自动关闭18. waitKey(6000);19.}放置一张名为pic.jpg的图片到工程目录中,然后点击“运行“按钮,如果配置成功,就不会报错,得到预想的运行结果:为了大家的考虑,还是把工程文件发一下吧,虽然这次只有简单的几句代码:【OpenCV+VS2010开发环境配置测试用例by 浅墨】下载7.可能遇到的问题和解决方案呼,生活不可能是一帆风顺的,我们的配置过程也是。