OpenCV3.0与VisualStudio2013配置
本文介绍了OpenCV3.0与VisualStudio2013配置使用过程。
工欲善其事,必先利其器。看上去没有什么技术难度,但是要让第一个基于OpenCV的程序运行起来还有有不少细节需要注意的。
先交代本次演示的环境:win7,64位
1.安装相关程序软件
安装VisualStudio2013和OpenCV,本文默认大家都安装好了两款软件,需要注意的是,安装OpenCV时需要记住安装路径,后面需要多次使用该路径。本次演示的安装路径为“D:\opencv”,找到你自己的安装路径,后文统一用“安装路径\opencv”表示该路径。
图1.1 安装路径
2.环境变量修改
添加OpenCV相关路径的环境变量path,这一步相当于告诉程序在对应的目录下面去找自己运行时需要的文件。
修改方法:
第一步,找到修改位置,点击我的电脑--右键--属性--高级--环境变量。
图2.1 我的电脑-属性
图2.2 高级系统设置-环境变量
图2.3 环境变量-PATH
找到并双击“PATH”,如果在该栏找不到“PATH”,则点击新建,创建一个变量“PATH”。然后将变量值添加在后面,注意如果是新建的“PATH”,直接添加变量值即可,如果已经存在“PATH”,在变量值最后先加分号,再加本次要插入的变量值,注意使用英文输入法的分号。
图2.4 插入变量值
那么要插入的变量值其实就是一个路径,该路径为“安装路径\opencv\build\x86\vc12\bin”,点击确定。退出该界面再次点击确定。
3.VisualStudio2013创建工程
使用VisualStudio2013创建新项目,注意选择Visual C++,Win32控制台应用程序,输入相应的名称位置等信息,点击确定。
图3.1创建新项目
图3.2 确认下一步
图3.3 勾选“空项目”-完成
最后一步,记得候选“空项目”,点击“完成”,一个空的工程创建完成。
4. VisualStudio2013项目工程配置
配置方法有多种,本质上都是差不多,都是对工程的“Debug”或“Release”属性进行修改,使其能够链接到OpenCV库。
4.1 打开“Microsoft.Cpp.Win32.User属性页”
找到工程的“属性管理器”,如果不知道怎么找,可以在快速启动速搜栏里面输入“属性管理器”,找到以后打开“Debug”文件夹,双击“Microsoft.Cpp.Win32.User”,弹出“Microsoft.Cpp.Win32.User属性页”,接下来就要在该页上进行一系列的修改了。
图4.1 快速启动栏
图4.2 “Debug”文件夹中双击“Microsoft.Cpp.Win32.User”
图4.3 Microsoft.Cpp.Win32.User属性页
4.2 配置“Microsoft.Cpp.Win32.User属性页”
找到“VC++目录”,窗口右侧选中“包含目录”,编辑,在里面输入三个地址:
“安装路径\opencv\build\include”
“安装路径opencv\build\include\opencv”
“安装路径\opencv \build\include\opencv2”
点击确定退出。
图4.4 找到“包含目录”
图4.5 “包含目录”修改
再在图4.4中选中“库目录”,进入修改,输入地址:
“安装路径\opencv\build\x86\vc12\lib”
“安装路径\opencv\build\x86\vc12\staticlib”
点击确定退出。
图4.6 “库目录”修改
选中“链接器”-“输入”-“附加依赖项”,进入修改。添加“opencv_ts300d.lib” 和“opencv_world300d.lib”,注意,此处两个库名称各占一行,不要使用分号等间隔符。
图4.7 找到“附加依赖项”
图4.8 “附加依赖项”修改
点击确定,完成。
4.3 运行demo
“资源管理器”-“源文件”,新建一个C++文件,并在其中插入代码。
#include<cv.h>
#include<highgui.h>
int main(int argc, char** argv[])
{
IplImage*img= cvLoadImage("C:/Users/Administrator/Desktop/0.jpg");
cvShowImage("Example",img);
cvWaitKey(0);
return0;
}
该段断码调用了一张图片,名为“0.jpg”,运行时,将地址改为自己想要加载的图片即可。
图4.9 新建C++文件
图4.10 添加代码
图4.11 运行结果
5. x86和x64的区别
通过切身实验和体会,发现经常出现配置完成后报错的现象,编译器找不到库或者路径,网上很多人说是因为x86和x64的区别配置不完善导致的。在此说明两者的配置区别
前文所述默认选择x86,如果没有其他要求,不需要特地选用x64,已经完全满足使用要求。下面讲述如果配置成x64的步骤。
首先,再项目属性中修改“平台”。在项目名上右击-单击“属性”-“配置管理器”-选择平台-新建-选择“x64”-确定
图5.1 属性-配置管理器
图5.2 选择平台-新建
图5.3 选择“x64”-确定
选择完成后,逐步点击“确定”退出。
此外,4.1与4.2中对“Microsoft.Cpp.Win32.User属性页”的配置全部改为对“Microsoft.Cpp.x64.user”的配置。
图5.4 选择“Microsoft.Cpp.x64.user”
配置方法与前述基本相同,但需要注意在 “图4.6 “库目录”修改”中的窗口上多添加两个路径信息:
“安装路径\opencv\build\x64\vc12\lib”
“安装路径\opencv\build\x64\vc12\staticlib”
图5.5 添加x64的库路径
逐步点击确定,退出即可
最后,使用x64要在环境变量中多添加一条路径:
“安装路径\opencv\build\x64\vc12\bin”
图5.6 添加x64的环境变量
配置完成,按4.3所示添加代码,即可运行x64平台的程序。
6.其他注意事项
OpenCV3.0和旧版本在添加库时有所区别,例如2.4.9版本OpenCV在图4.8中需要添加如下库:
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib
但是如果OpenCV3.0添加了诸如opencv_ml300d.lib的库运行时会显示找不到库。OpenCV3.0只要添加“opencv_ts300d.lib” 和“opencv_world300d.lib”即可。