Win8.1 + Opencv 2.4.8 + VS 2013:编写Opencv的VS工程容属性表
来源:互联网 发布:程序员简历造假 编辑:程序博客网 时间:2024/04/29 13:15
转自:http://my.phirobot.com/blog/2014-02-opencv_configuration_in_vs.html
Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
详细可参看链接位置。现主要关注下编写Opencv的VS工程容属性表
在opencv根目录(例如 D:\Program Files\opencv)下新建VS属性表文件 opencv248.props,或者直接下载我的opencv248.props 属性表文件。
opencv248.props 文件内容如下:
<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ImportGroup Label="PropertySheets" /> <PropertyGroup Label="UserMacros" /> <PropertyGroup> <IncludePath>$(OPENCV)\include;$(IncludePath)</IncludePath> <LibraryPath Condition="'$(Platform)'=='Win32'">$(OPENCV)\x86\vc12\lib;$(LibraryPath)</LibraryPath> <LibraryPath Condition="'$(Platform)'=='X64'">$(OPENCV)\x64\vc12\lib;$(LibraryPath)</LibraryPath> </PropertyGroup> <ItemDefinitionGroup> <Link Condition="'$(Configuration)'=='Debug'"> <AdditionalDependencies>opencv_calib3d248d.lib;opencv_contrib248d.lib;opencv_core248d.lib;opencv_features2d248d.lib;opencv_flann248d.lib;opencv_gpu248d.lib;opencv_highgui248d.lib;opencv_imgproc248d.lib;opencv_legacy248d.lib;opencv_ml248d.lib;opencv_nonfree248d.lib;opencv_objdetect248d.lib;opencv_ocl248d.lib;opencv_photo248d.lib;opencv_stitching248d.lib;opencv_superres248d.lib;opencv_ts248d.lib;opencv_video248d.lib;opencv_videostab248d.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <Link Condition="'$(Configuration)'=='Release'"> <AdditionalDependencies>opencv_calib3d248.lib;opencv_contrib248.lib;opencv_core248.lib;opencv_features2d248.lib;opencv_flann248.lib;opencv_gpu248.lib;opencv_highgui248.lib;opencv_imgproc248.lib;opencv_legacy248.lib;opencv_ml248.lib;opencv_nonfree248.lib;opencv_objdetect248.lib;opencv_ocl248.lib;opencv_photo248.lib;opencv_stitching248.lib;opencv_superres248.lib;opencv_ts248.lib;opencv_video248.lib;opencv_videostab248.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemGroup /></Project>
这份属性表为opencv2.4.8的VS2013工程属性表,兼容64位和32位平台,兼容Debug和Release配置。详细解释看后文,后面在VS工程中配置Opencv只需要导入这份属性表就可以了。
Note
如果不是VS2013,或者Opencv版本不是2.4.8,一定要修改部分参数才能使用。详细修改办法看后文。
新建VS测试工程
文件 -> 新建 -> 项目 -> Visual C++ -> Win32 控制台应用程序(输入名称test)
确定 -> 下一步 -> 附加选项选“空项目” -> 完成
VS内配置Opencv
这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。
属性管理器 -> 右键 "test"(工程名) -> 添加现有属性表
找到之前新建或者下载的属性表( D:\Program Files\opencv\opencv248.props ),添加进工程
测试
解决方案资源管理器 -> 源文件(右键)-> 添加 -> 新建项
Visual C++ -> C++文件:输入名称test点添加
粘贴下面的代码,保存:
#include <opencv2\opencv.hpp>#include <iostream>#include <string>using namespace cv;using namespace std;int main(){ Mat img = imread("pp.jpg"); if (img.empty()) { cout << "error"; return -1; } imshow("pp的靓照", img); waitKey(); return 0;}
把自己的靓照改名为pp.jpg,然后放到工程项目的test文件夹里面(是里面那个test文件夹)
按F5调试程序,如果你的图片出来了就OK了。
进阶
直接文本编写Opencv x64 x86 Debug Release 全兼容属性表
新建属性表文档 opencv248.props,填写下面的xml内容并保存:
<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ImportGroup Label="PropertySheets" /> <PropertyGroup Label="UserMacros" /> <PropertyGroup> <IncludePath>$(OPENCV)\include;$(IncludePath)</IncludePath> <LibraryPath Condition="'$(Platform)'=='Win32'">$(OPENCV)\x86\vc12\lib;$(LibraryPath)</LibraryPath> <LibraryPath Condition="'$(Platform)'=='X64'">$(OPENCV)\x64\vc12\lib;$(LibraryPath)</LibraryPath> </PropertyGroup> <ItemDefinitionGroup> <Link Condition="'$(Configuration)'=='Debug'"> <AdditionalDependencies>opencv_calib3d248d.lib;opencv_contrib248d.lib;opencv_core248d.lib;opencv_features2d248d.lib;opencv_flann248d.lib;opencv_gpu248d.lib;opencv_highgui248d.lib;opencv_imgproc248d.lib;opencv_legacy248d.lib;opencv_ml248d.lib;opencv_nonfree248d.lib;opencv_objdetect248d.lib;opencv_ocl248d.lib;opencv_photo248d.lib;opencv_stitching248d.lib;opencv_superres248d.lib;opencv_ts248d.lib;opencv_video248d.lib;opencv_videostab248d.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <Link Condition="'$(Configuration)'=='Release'"> <AdditionalDependencies>opencv_calib3d248.lib;opencv_contrib248.lib;opencv_core248.lib;opencv_features2d248.lib;opencv_flann248.lib;opencv_gpu248.lib;opencv_highgui248.lib;opencv_imgproc248.lib;opencv_legacy248.lib;opencv_ml248.lib;opencv_nonfree248.lib;opencv_objdetect248.lib;opencv_ocl248.lib;opencv_photo248.lib;opencv_stitching248.lib;opencv_superres248.lib;opencv_ts248.lib;opencv_video248.lib;opencv_videostab248.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemGroup /></Project>
这份属性表为opencv2.4.8的VS工程属性表,兼容64位和32位平台,兼容Debug和Release配置。
很容易看出如何修改:
- 如果你没有配置%OPENCV%环境变量,则只需要修改 IncludePath 和 LibraryPath 所指三个标签,用绝对路径代替$(OPENCV);
- 如果你的Visual Studio版本与我的不同,则需要修改 LibraryPath 所指两个标签的将编译器版本号,VS2010对应vc10,VS2012对应vc11,VS2013对应vc12;
- 如果你的opencv与我的版本不同,只需要将两个 AdditionalDependencies 标签内的所有lib的版本号修正即可(所有的248改为自己的版本号),并在opencv的lib目录下检查一下lib名称是否对应。
通过VS界面建立自己的VS项目属性表
网上一大堆,就不具体说明了。与自己文本编写属性表不同的是,通过界面新建的属性表要为不同的配置单独建立,导入的时候也要针对配置单独导入。
属性管理器 ->展开 项目名 -> 右键 Debug | Win32 -> 添加新项目属性表
添加属性表,取名为“opencv248x86.Debug.props”。
属性管理器 ->展开 Debug | Win32 -> 双击 新建的 opencv248x86.Debug 打开属性页面 -> VC++ 目录
编辑 包含目录 一栏,添加opencv的include路径,例如我的是 D:\Program Files\opencv\build\include;编辑库目录 一栏,添加opencv的lib路径,例如我的是 D:\Program Files\opencv\build\x86\vc12\lib 。
Note
将光标移到编辑框会在右边出现小下拉三角,点击小三角,再选择编辑打开路径选择窗口选择对应路径。如果直接粘贴则粘贴在现有内容前面用分号隔开,否则会失去继承性。
Note
库目录 一栏选择opencv的lib路径时,如果工程是64位则选择opencv的x64目录,如果是32位则选择x86。Visual Studio的版本与编译器版本号的对应关系是:VS2010 -> vc10, VS2012 -> vc11, VS2013 -> vc12,选择目录的时候注意自己的VS工程版本。
在属性页面 -> 链接器 -> 输入 -> 附加依赖项 -> 编辑。添加下面的lib列表:
opencv_calib3d248d.libopencv_contrib248d.libopencv_core248d.libopencv_features2d248d.libopencv_flann248d.libopencv_gpu248d.libopencv_highgui248d.libopencv_imgproc248d.libopencv_legacy248d.libopencv_ml248d.libopencv_nonfree248d.libopencv_objdetect248d.libopencv_ocl248d.libopencv_photo248d.libopencv_stitching248d.libopencv_superres248d.libopencv_ts248d.libopencv_video248d.libopencv_videostab248d.lib
确定两次后完成Debug版本的属性表编辑。
同样依照上面的步骤编写Release版本的属性表,唯一不同的是在“附加依赖项”中填入的是Release版本的lib列表:
opencv_calib3d248.libopencv_contrib248.libopencv_core248.libopencv_features2d248.libopencv_flann248.libopencv_gpu248.libopencv_highgui248.libopencv_imgproc248.libopencv_legacy248.libopencv_ml248.libopencv_nonfree248.libopencv_objdetect248.libopencv_ocl248.libopencv_photo248.libopencv_stitching248.libopencv_superres248.libopencv_ts248.libopencv_video248.libopencv_videostab248.lib
Tip
*d.lib的是Debug版本lib,*.lib的是Release版本lib。
- Win8.1 + Opencv 2.4.8 + VS 2013:编写Opencv的VS工程容属性表
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- 使用Opencv时VS工程属性设置
- OpenCV配置攻略 (Win8 + Opencv 3.0.0 + VS 2013)
- 使用VS创建OpenCV工程
- openCV 2.4.9 + VS 2013
- opencv 3.0 vs 2013
- vs环境下OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9的配置
- 判断是否是数字(报错小数点,java)
- 安卓手机如何获得root权限
- CocoaPods详解之----使用篇
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- linux中配置在qt中调用opencv图像库
- Win8.1 + Opencv 2.4.8 + VS 2013:编写Opencv的VS工程容属性表
- sso
- UITableView划动删除的实现
- Android SDK镜像的介绍使用
- 在Tomcat中实现基本的HTTP方式的验证
- 6.2 最大熵模型
- 设计模式C++学习笔记之十二(Command命令模式)
- 杭电2098 分拆素数和
- 在Linux下编写运行你的第一条代码——Hello Linux