Win 10 + VS 2010下的openCV配置过程

参考:http://johnhany.net/2013/11/environment-for-opencv-with-vs2010/#stdafx.h

永久性配置方法参考:
http://wenku.baidu.com/link?url=bLs235VYW-ni3pqD5Ug_JwYcOIXb51i4BgGNW22AdLtvY7h6neFJDP4Ho2Ocp9rgVtlwR6edTcBNs7hcmcC4x9PpgCWavkrBPf_ToLJIog_

1.1 本机配置

Windows 7 旗舰版 x86
Visual Studio 2010 旗舰版
OpenCV 2.4.10

1.2 下载解压OpenCV

可以在官网下载最新版
下载后解压到

D:\software\opencv

1.3设置环境变量

开始->计算机(右击)->属性->高级系统设置->高级->环境变量,在用户变量里增加一项:

变量名:path
变量值:D:\software\opencv\build\x86\vc10\bin

如果已经有path项,在其变量值结尾添加英文分号“;”,再加上上面那个值。
这里的“x86”代表目标程序是32位的,如果要写64位的程序则选择“x64”文件夹。并不是根据开发环境(你的机器)选择的。
后面的“vc10”代表使用Visual C++ 2010开发。

注销用户,重新登录Windows,保证环境变量更新并起作用。

1.4创建并配置工程

打开Visual Studio 2010,新建一个工程,选择Visual C++ ->Win32->Win32 Console Application,命名例如“OpencvTest”,点击确定。

点击 下一步

选择 控制台应用程序 和 预编译头 。点击 完成 。

由于每次新建一个opencv项目都需要重新配置“VC++目录”中的“包含目录”和“库目录”,以及“链接器”中的“附加依赖项”。所以下面用永久性配置opencv环境的方法。

打开上面建好的工程,打开 视图->其他窗口->属性管理器。

展开树形,发现一个“Microsoft.Cpp.Win32.user”的项目:

右击点开 属性

左侧选择“VC++目录”,右侧新增“包含目录”

添加以下三项:

D:\software\opencv\build\include
D:\software\opencv\build\include\opencv
D:\software\opencv\build\include\opencv2

其实只需要填入第一行即可。由于“include\opencv”包含C版本的头文件,“include\opencv2”包含C++版本的头文件。所以编写代码时,在头文件名称前加上“opencv/”或“opencv2/”来区分两种版本。
在“库目录”中增加一项:

E:\softwares\opencv\build\x86\vc10\lib

选择链接器->输入,在附加依赖项中增加:
(2410表示opencv版本号,d表示debug)

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_ml2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib

其中各个模块的功能可以参考:

http://docs.opencv.org/2.4/modules/core/doc/intro.html

如果需要Release功能,在属性管理器中重复上面的配置。附加依赖项中去掉每项后面的d。

                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
                opencv_objdetect2410.lib
                opencv_ts2410.lib
                opencv_video2410.lib

1.5编程测试

#include "stdafx.h"
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
 
int main(int argc, char* argv[])
{
const char* imagename = "D:\\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;
}

程序结果: