1. 主页 > vs安装问题 > VS2012安装问题 >

Visual Studio2012环境下配置OpenCV

 

          
  • 编辑
  • 删除

1.下载和安装OpenCV SDK

1.1  资源下载

在OpenCV官网http://opencv.org 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的用户变量中)添加两个变量。

(1) 新建opencv变量,变量值设置为D:\ProgramFiles\opencv\build。


(2) 新建path变量,变量值设置为D:\ProgramFiles\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环境下的工程属性进行修改(通过修改Microsoft.Cpp.Win32.user文件进行)。查阅相关资料,发现Visual Studio 2012中已经不再区分Debug和Release的Microsoft.Cpp.Win32.user文件,所以配置了DebugRelease中的任何一个Microsoft.Cpp.Win32.user,就相当于同时配置了DebugRelease环境下的两个Microsoft.Cpp.Win32.user。但又因为DebugRelease环境下加载的库文件不同,需要单独为DebugRelease环境下的工程项目属性进行配置。考虑到VS2012的该特点总结出以下属性配置方法。

3.1  新建工程

(1)新建Win32控制台应用程序,此处工程名命名为OpenCVTest。并在后续的属性设置中选择空工程(Empty Project)





(2)为该工程添加源文件,并命名为OpenCVTest.cpp

3.2  属性管理器之Debug环境下配置

Visual Studio 2012中已经不再区分Debug和Release的Microsoft.Cpp.Win32.user文件,所以配置了DebugRelease中的任何一个Microsoft.Cpp.Win32.user,就相当于同时配置了DebugRelease环境下的两个Microsoft.Cpp.Win32.user。但又因为DebugRelease环境下加载的库文件不同,需要单独为DebugRelease环境下的工程项目属性进行配置

此处给出属性管理器之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,添加包含目录

(1) 打开属性表OpenCV_debug_property.props



(2)在VC++选项对应的包含目录中,添加包含的目录,此处添加3个目录

D:\Program Files\opencv\build\include

D:\Program Files\opencv\build\include\opencv

D:\Program Files\opencv\build\include\opencv2


3.2.3         在属性表OpenCV_debug_property.props,添加库目录

(1)打开属性表,并在VC++选项对应的库目录中,添加库目录,此处添加1个目录

D:\Program Files\opencv\build\x86\vc11\lib



说明

1)不论电脑是32位还是64位,上述路径中均以x86路径输入,因为创建的程序中默认是在使用win32编译器进行编译。

2)输入的路径中选择vc11是因为本处是在VS2012平台上搭建。vc10对应VS2010vc11对应VS2012vc12对应VS2013

3.2.4   在属性表OpenCV_debug_property.props,在链接器中添加附加依赖项

(1) 打开属性表OpenCV_debug_property.props,选择链接器(LINKER)目录下的输入(INPUT)选项

(2)添加附属依赖项,加入如下库文件,共19个(后缀均带d,表示是Debug环境下)

opencv_ml2410d.lib

opencv_calib3d2410d.lib

opencv_contrib2410d.lib

opencv_core2410d.lib

opencv_features2d2410d.lib

opencv_flann2410d.lib

opencv_gpu2410d.lib

opencv_highgui2410d.lib

opencv_imgproc2410d.lib

opencv_legacy2410d.lib

opencv_objdetect2410d.lib

opencv_ts2410d.lib

opencv_video2410d.lib

opencv_nonfree2410d.lib

opencv_ocl2410d.lib

opencv_photo2410d.lib

opencv_stitching2410d.lib

opencv_superres2410d.lib

opencv_videostab2410d.lib

3.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.lib

opencv_ts2410.lib

opencv_video2410.lib

opencv_nonfree2410.lib

opencv_ocl2410.lib

opencv_photo2410.lib

opencv_stitching2410.lib

opencv_superres2410.lib

opencv_videostab2410.lib

opencv_calib3d2410.lib

opencv_contrib2410.lib

opencv_core2410.lib

opencv_features2d2410.lib

opencv_flann2410.lib

opencv_gpu2410.lib

opencv_highgui2410.lib

opencv_imgproc2410.lib

opencv_legacy2410.lib

opencv_ml2410.lib


4.   测试程序

完成了上述步骤后,VisualStudio2012环境下配置OpenCV的步骤已经全部完成,下面给出一个测试程序,验证环境配置的正确性。

在程序的源文件目录下的OpenCVTest.cpp文件中加入下述代码。

[cpp] view plain copy print?
  1. #include<iostream> 
  2. #include <opencv2/core/core.hpp> 
  3. #include <opencv2/highgui/highgui.hpp> 
  4.  
  5. using namespace cv; 
  6.  
  7. int main() 
  8.     // 读入一张图片 
  9.     Mat img = imread("nanjing.jpg"); 
  10.     // 创建一个名为 "游戏原画"窗口 
  11.     cvNamedWindow("南京夜景真美啊!"); 
  12.     // 在窗口中显示游戏原画 
  13.     imshow("南京夜景真美啊!", img); 
  14.     // 等待6000 ms后窗口自动关闭 
  15.     waitKey(6000); 
#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的Microsoft.Cpp.Win32.user的特点进行配置,因此自己在第一次配置时走了不少弯路,花了大半个晚上去尝试修改。现特此整理出此文,总结相关配置。

配置过程中主要参考了以下两个资料,给出网址,供参考。

[1]  http://blog.csdn.net/lysc_forever/article/details/24272595

[2]  http://blog.csdn.net/poem_qianmo/article/details/19809337

本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2012anzhuangwenti/2020/0725/4821.html

联系我们

在线咨询:点击这里给我发消息

微信号:PREEE8

工作日:9:30-18:30,节假日休息