Visual Studio2012环境下配置OpenCV的步骤2014/12/16 本文将针对Visual Studio2012环境下如何配置OpenCV做出说明,具体如下。
1.下载和安装OpenCV SDK1.1资源下载在OpenCV官网 SDK安装包。
对应自己的操作系统,可以下载Windows,Linux/Mac和ios版本。
目前官网已经给出OpenCV v3.0bata版本。
本文中以OpenCV v2.4.10版本为例进行安装。
(各个版本安装过程大体相同,后面将针对不同之处给出说明)1.2资源安装下载的OpenCV SDK的后缀名为exe,是一个解压安装程序。
双击后会提示设置解压路径,推荐路径D:\Program Files。
(因为OpenCV项目文件打包的时候,根目录就是opencv,所以我们不需要额外的新建一个名为opencv的文件夹然后再解压,那是多此一举的事情)然后点击Extract按钮,进行安装。
2.环境变量和路径设置打开计算机→属性→高级系统设置,在高级目录下单击环境变量按钮,打开环境变量设置对话框。
2.1用户变量设置在用户变量(此处为lbs的用户变量中)添加两个变量。
新建opencv变量,变量值设置为D:\Program Files\opencv\build。
新建path变量,变量值设置为D:\Program Files\opencv\build\x86\vc11\bin。
此处如果已存在path变量,仅需对其变量值修改就行,在后面加上上述路径,但需要用分号和前面的路径隔开(英文半角下的分号)2.2系统变量设置在原有的path变量中对变量值修改,在变量值的最后加上D:\Program Files\opencv\build\x86\vc11\bin路径,注意要使用英文半角下的分号和前面的路径隔开。
※说明(1)不论电脑是32位还是64位,上述路径中均以x86路径输入,因为创建的程序中默认是在使用win32编译器进行编译。
(2)路径修改后需要重启电脑才能生效。
3.工程项目属性设置工程项目属性配置主要是指对Debug和Release环境下的工程属性进行修改(通过修改er文件进行)。
查阅相关资料,发现Visual Studio 2012中已经不再区分Debug和Release的er文件,所以配置了Debug或Release中的任何一个er,就相当于同时配置了Debug和Release环境下的两个er。
但又因为Debug和Release环境下加载的库文件不同,需要单独为Debug和Release环境下的工程项目属性进行配置。
考虑到VS2012的该特点总结出以下属性配置方法。
3.1新建工程(1)新建Win32控制台应用程序,此处工程名命名为OpenCVTest。
并在后续的属性设置中选择空工程(Empty Project)(2)为该工程添加源文件,并命名为OpenCVTest.cpp3.2属性管理器之Debug环境下配置Visual Studio 2012中已经不再区分Debug和Release的er文件,所以配置了Debug或Release中的任何一个er,就相当于同时配置了Debug和Release环境下的两个er。
但又因为Debug和Release环境下加载的库文件不同,需要单独为Debug和Release环境下的工程项目属性进行配置。
此处给出属性管理器之Debug环境下配置的方法。
3.2.1新建属性表,并命名为OpenCV_debug_property.props(1)在视图(View)目录的下拉菜单中打开属性管理器(Property Manage),也可以直接在VS2012界面的左下角打开Property Manage快捷键进入属性管理器(Property Manage)界面,如下图所示。
(2)在Debug|Win32目录上单击选择“添加新项目属性表”,新建属性表,并命名为OpenCV_debug_property.props,如下图所示。
3.2.2打开新建的属性表OpenCV_debug_property.props,添加包含目录 打开属性表OpenCV_debug_property.props在VC++选项对应的包含目录中,添加包含的目录,此处添加3个目录D:\Program Files\opencv\build\includeD:\Program Files\opencv\build\include\opencvD:\Program Files\opencv\build\include\opencv23.2.3在属性表OpenCV_debug_property.props,添加库目录打开属性表,并在VC++选项对应的库目录中,添加库目录,此处添加1个目录D:\Program Files\opencv\build\x86\vc11\lib※说明(1)不论电脑是32位还是64位,上述路径中均以x86路径输入,因为创建的程序中默认是在使用win32编译器进行编译。
(2)输入的路径中选择vc11是因为本处是在VS2012平台上搭建。
vc10对应VS2010,vc11对应VS2012,vc12对应VS20133.2.4在属性表OpenCV_debug_property.props,在链接器中添加附加依赖项打开属性表OpenCV_debug_property.props,选择链接器(LINKER)目录下的输入(INPUT)选项添加附属依赖项,加入如下库文件,共19个(后缀均带d,表示是Debug环境下)opencv_ml2410d.libopencv_calib3d2410d.libopencv_contrib2410d.libopencv_core2410d.libopencv_features2d2410d.libopencv_flann2410d.libopencv_gpu2410d.libopencv_highgui2410d.libopencv_imgproc2410d.libopencv_legacy2410d.libopencv_objdetect2410d.libopencv_ts2410d.libopencv_video2410d.libopencv_nonfree2410d.libopencv_ocl2410d.libopencv_photo2410d.libopencv_stitching2410d.libopencv_superres2410d.libopencv_videostab2410d.lib3.3属性管理器之Release环境下配置Release环境下的属性配置大体同Debug环境下的配置,此处相同步骤不再赘述,仅给出不同配置的步骤说明。
3.3.1新建属性表,并命名为OpenCV_release_property.props在Release|Win32目录上单击选择“添加新项目属性表”,新建属性表,并命名为OpenCV_release_property.props,方法同Debug环境下的配置,只是属性表所属的目录不同。
3.3.2打开新建的属性表OpenCV_release_property.props,添加包含目录此处方法同Debug环境下的包含目录配置,不再赘述。
3.3.3打开新建的属性表OpenCV_release_property.props,添加库目录此处方法同Debug环境下的包含目录配置,不再赘述。
3.3.4在属性表OpenCV_release_property.props,在链接器中添加附加依赖项此处和Debug环境下添加的附加依赖项不同,在附加依赖项中添加如下库文件,共19个。
(后缀均不带d,表示是Release环境)opencv_objdetect2410.libopencv_ts2410.libopencv_video2410.libopencv_nonfree2410.libopencv_ocl2410.libopencv_photo2410.libopencv_stitching2410.libopencv_superres2410.libopencv_videostab2410.libopencv_calib3d2410.libopencv_contrib2410.libopencv_core2410.libopencv_features2d2410.libopencv_flann2410.libopencv_gpu2410.libopencv_highgui2410.libopencv_imgproc2410.libopencv_legacy2410.libopencv_ml2410.lib4.测试程序完成了上述步骤后,Visual Studio2012环境下配置OpenCV的步骤已经全部完成,下面给出一个测试程序,验证环境配置的正确性。
在程序的源文件目录下的OpenCVTest.cpp文件中加入下述代码。
#include<iostream>#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>using namespace cv;int main(){// 读入一张图片Mat img=imread("nanjing.jpg");// 创建一个名为 "游戏原画"窗口cvNamedWindow("南京夜景真美啊!");// 在窗口中显示游戏原画imshow("南京夜景真美啊!",img);// 等待6000 ms后窗口自动关闭waitKey(6000);}在工程目录下加入一张测试图片,此处以”nanjing.jpg”为例,然后分别在Debug环境下和Release环境下运行程序,程序运行正确,可以正确显示图像,验证了上述配置的正确性。
(1)Debug环境下,程序运行正确(2)Release环境下,程序运行正确5.永久配置OpenCV环境针对其他的OpenCV工程,不用再像上述步骤一样进行一步一步的配置,只需进行一步操作就可以快速配置OpenCV环境,详情如下。
将上述步骤创建的两个属性表OpenCV_debug_property.props和OpenCV_release_property.props保存到一个常用的文件夹中。
当创建新工程时,只需在属性管理器中添加上述两个属性表就可,快速完成配置OpenCV的步骤。
6.常见问题解答FAQ和参考资料撰写本文时查阅了很多网上和书籍资料,但大多未结合Visual Studio 2012中已经不再区分Debug和Release的er的特点进行配置,因此自己在第一次配置时走了不少弯路,花了大半个晚上去尝试修改。