一. 环境准备
- 下载并安装 Visual Studio 2012
- 下载并安装 opencv 最新版本(本人用的是2.4.9 )
打开环境变量设置界面.
方法一: 开始 –> 控制面板 –> 系统和安全 –> 系统 –> 高级系统设置 –> 高级 –> 环境变量
方法二: 右击我的电脑-->属性-->高级系统设置--> 高级 –> 环境变量
上述操作之后可看到以下界面:
在上上图”环境变量”窗口找到变量”path”. 点击”编辑” 按钮 或 双击“path“
更改”变量值”, 在原有的变量值基础上, 增加” ;%opencv%\build\x86\vc11\lib”. 点击确定 // %opencv%为你安装opencv的绝对路径
例如我的 %opencv%路径为:F:\software\opencv.2.4.9\opencv
注意:1. 分号不要丢掉
2.
之前在vs2012下编译一个opencv程序时,一直出现msvcp120d.dll文件丢失的提示信息,问题产生的主要原因是vs2012编译了一个用vs2013生成的dll,是在选择第三方库时选择vc版本时出现的问题,一定要多加注意。
- vc8 = Visual Studio 2005
- vc9 = Visual Studio 2008
- vc10 = Visual Studio 2010
- vc11 = Visual Studio 2012
- vc12 = Visual Studio 2013
- MSVCP80.DLL is from Visual Studio 2005
- MSVCP90.DLL is from Visual Studio 2008
- MSVCP100.DLL is from Visual Studio 2010
- MSVCP110.DLL is from Visual Studio 2012
- MSVCP120.DLL is from Visual Studio 2013
环境变量 ” ;%opencv%\build\x86\vc11\lib”
所以这里写的是vc11,而不是vc12(x86文件夹下有三个文件夹,vc10,vc11,vc12,切
勿以为是vs2012就选vc12,至于为什么,上面都写清楚了!)
三. 设置 VS 2012 环境
(注意: 如果现在你的 vs打开着,请关闭重新打开vs.)
1. 新建 Project
下一步, 注意下面几个选项.
完成 项目创建
2. 设置项目属性.
1) 新建 Property Sheet.
在VS最左侧找到 “Property Manager”( 属性管理 ) 选项卡, 如下图所示. ( 如果没有找到”Property Manager”. 点击菜单栏 “VIEW” –> “Property Manager” 即可看见 )
如下图所示, 在 “Debug|Win32” 上右键单击, 点击”Add New Project Property Sheet”
路径默认就行,点击”Add(添加)”完成创建.
2) 编辑 Property Sheet 属性
如下图所示, 编辑 “opencv249” 的属性.
做以下编辑:
Include Directories(包含目录) 添加 “%opencv%\build\include”.
Library Directories(库目录) 添加 “%opencv%\build\x86\vc11\lib”; (%opencv的含义同上)
图下图所示, 点击”Linker (连接器)–> Input(输入) –> Additional Dependencies(附加依赖项)”.
添加以下内容:
opencv_core249d.lib
opencv_imgproc249d.lib
opencv_highgui249d.lib
opencv_ml249d.lib
opencv_video249d.lib
opencv_features2d249d.lib
opencv_calib3d249d.lib
opencv_objdetect249d.lib
opencv_contrib249d.lib
opencv_legacy249d.lib
opencv_flann249d.lib
上面的”249”换成你下载的opencv版本.比如你的版本是2.4.4, 那么所有的249换成244即可.
完成设置
3) 设置 Release 属性
完成”设置项目属性”之后, 你的debug版本便可正常使用. 如果需要设置 release 版本. 重复上面步骤 三.2.
中间有两处不同:
1. 在步骤三.2.1).中, 需要对 “Release |Win32” 添加 Property Sheet.
2. 在步骤三.2.2). 中 所有Additional Dependencies 项, XXX249d.lib 都去掉 “d". 比如 “opencv_core249d.lib” 变成”opencv_core249.lib”. 全部去掉后变成:
opencv_core249.lib
opencv_imgproc249.lib
opencv_highgui249.lib
opencv_ml249.lib
opencv_video249.lib
opencv_features2d249.lib
opencv_calib3d249.lib
opencv_objdetect249.lib
opencv_contrib249.lib
opencv_legacy249.lib
opencv_flann249.lib
3. 编写测试代码并运行.
新建 main.cpp. 填写以下代码
using namespace cv;
int main()
{
Mat
img = imread("../img.jpg");
if (img.empty())
{
fprintf(stderr,"Error:load image failed.");
return -1;
}
namedWindow("image",
CV_WINDOW_AUTOSIZE);
imshow("image",
img);
waitKey();
return 0;
}
|
|
随便找张图片, 放到放到你的工程目录, 命名为 img.jpg,当然可以根据自己的需要更换它。
编译运行,结果如下:
Contradulations~~
注:不管是32位还是64位系统环境变量都是配X86里面。