vs编译opencv
⑴ VS2013怎么配置opencv才能不用每次都重新配置一遍
说白了就是将VS第一次配置OpenCV的项目属性表保存下来,每次新建项目时引用即可。
目录
解压OpenCV
配置系统环境变量
创建VS新项目
添加项目属性表
配置项目属性表
引用项目属性表
声明:
以
下展示内容,配置方案为OpenCV2.4.9+VS2013+win10+x64,但方法适用于OpenCV2.4.8、OpenCV2.4.9、
OpenCV2.4.10,适用于win7、win8.1、win10,适用于x64和x84(下面会讲解如何对应修改)。如果问为什么适用?因为我都试
过啊~
会一次性配置的知友请直接看第四部分和第六部分,因为其余部分跟一次性配置是一样的。
一、解压OpenCV
比如本人解压在G盘根目录下
二、配置系统环境变量
打开“系统属性”,点击“环境变量”
双击Path的值部分
填上OpenCV的bin路径
注意:
1、此时电脑最好重启下。
2、如果你的应用程序是win32控制台应用程序,则选择x32的路径;如果你的应用程序是win64控制台应用程序,则选择x64的路径。(感谢 @吴信仰 的指正和解惑。)
3、vc10, vc11, vc12 分别表示VS2010, VS2012, VS2013的Visual Studio使用的编译器版本,根据自己的VS版本来填写正确的编译器版本号。
三、创建VS新项目
四、添加项目属性表
“视图”打开“属性窗口”
右击“Debug|Win32”点击“添加新项目属性表”(如果想在Release模式下使用OpenCV,右击Release|Win32,同理可得)
给属性表命名
五、配置项目属性表
双击创建的属性表
5.1添加包含目录
5.2添加附加库目录
注意:
1、如果你的应用程序是win32控制台应用程序,则选择x32的路径;如果你的应用程序是win64控制台应用程序,则选择x64的路径。
2、vc10, vc11, vc12 分别表示VS2010, VS2012, VS2013的Visual Studio使用的编译器版本,根据自己的VS版本来填写正确的编译器版本号。
5.3添加附加依赖项
附加依赖项如下:
opencv_imgproc249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_legacy249d.lib
opencv_ml249d.lib
opencv_nonfree249d.lib
opencv_objdetect249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_videostab249d.lib
注意:
1、249对应OpenCV2.4.9,其他版本做对应修改。
2、后缀d代表Debug模式,如果是Release模式去掉d。依个人情况选择Debug模式或者Release模式。
六、引用项目属性表
打开项目目录,你会看到如下文件
以后新建项目时,打开属性管理器,右击Debug|Win32选择添加现有属性表上述文件即可。
========================
以上,应该算VS一次配置永久使用OpenCV了^ ^
编辑于 2016-05-13
12 条评论
感谢
分享
收藏
•
没有帮助
•
举报
•
作者保留权利
ZZ Chris
,在野武将
18 人赞同
不同意vczh的做法,遇到需要切换opencv版本的情况太麻烦。
请认准属性表,一次编写,到处使用,系统环境变量你都不需要设定,所有设定都写在属性表文件中,用的时候在vs里导入属性表。如果要切换opencv版本,只修改opencv编译输出目录就可以了。
比如OpenCV3.0版的,可以命名为opencv300.props:
<?xml version="1.0" encoding="utf-8"?>
<!--
OpenCV 3.0.0属性表文件
不用单独配置环境变量OpenCV
也不用单独在系统PATH上添加OpenCV可执行路径
只需要在VisualStudio-"菜单"-"视图"-"属性管理器"中添加现有属性表,添加本文件
使用前请将下面的OpenCVRoot修改为你的OpenCV编译输出目录
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<!-- 请把OpenCVRoot属性的值替换为你的OpenCV编译输出的目标目录,它包含x64、x86这样的子目录 -->
<OpenCVRoot>D:\lib\opencv300\build</OpenCVRoot>
<!-- 指定INCLUDE路径-->
<IncludePath>$(OpenCVRoot)\include;$(IncludePath)</IncludePath>
<!-- 指定链接所需lib目录-->
<LibraryPath Condition="'$(Platform)'=='Win32'">$(OpenCVRoot)\x86\vc12\lib;$(LibraryPath)</LibraryPath>
<LibraryPath Condition="'$(Platform)'=='X64'">$(OpenCVRoot)\x64\vc12\lib;$(LibraryPath)</LibraryPath>
<!-- 保证系统处于Debug模式时,可以使用相对路径读取源代码目录下的文件,比如"lena.jpg"而不必是"d:/work/test/test/lena.jpg" -->
<LocalDebuggerWorkingDirectory>$(ProjectDir)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<!-- 让系统PATH临时包含指定的dll目录 -->
<LocalDebuggerEnvironment Condition="'$(Platform)'=='Win32'">PATH=%PATH%;$(OpenCVRoot)\x86\vc12\bin</LocalDebuggerEnvironment>
<LocalDebuggerEnvironment Condition="'$(Platform)'=='X64'">PATH=%PATH%;$(OpenCVRoot)\x64\vc12\bin</LocalDebuggerEnvironment>
</PropertyGroup>
<!-- 以下是程序需要加载的lib文件。-->
<ItemDefinitionGroup>
<Link Condition="'$(Configuration)'=='Debug'">
<AdditionalDependencies>opencv_ts300d.lib;opencv_world300d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<Link Condition="'$(Configuration)'=='Release'">
<AdditionalDependencies>opencv_ts300.lib;opencv_world300.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
⑵ 为什么要使用cmake+VS重新编译的opencv库
使用opencv需要编译源码,得到库文件。可以用cmake构建项目后编译,也可以直接用官方提供的编译好的版本。
官方提供的编译库一般只是标准版本,可能与某些库并不兼容,比如官方提供的编译好的版本与opengl就不兼容,这时就只能自己构建项目后编译。
在用cmake生成工程文件的时候,设置当中有WITH_OPENGL,WITH_QT等选项,你想支持哪个库只需要选择即可。
当然,一般使用的话,用官方提供的库即可。OpenCV2.3.1版本就提供编译好的库,可以直接设置使用
⑶ opencv +vs2010问题,编译出现100多错误。详情见补充。
如果配置没错的话,看一下错误提示
则文件路径出错了;
正确的是:cvLoadImage("C:\\Users\\Hu\\Desktop\\matlab\\1.jpg",1)
或cvLoadImage("C:/Users/Hu/Desktop/matlab/1.jpg",1)