当我们的项目中需要使用open库时,每次都得手动引入include,lib和dll项,那有没有什么方法可以一次配置后,在新的项目中遇到需要使用opencv时可以不再需要配置了呢,下面介绍几种方法:
注意:
由于在下载opencv 版本时,很容易搞错,特地在这指出来
opencv版本的区别:(以opencv-2.4.13版本为例)
opencv-2.4.13-vc14.exe //这个是用vs2015在Windows平台下编译过的可执行文件,不需要再编译,里面有build和 source两个主要文件夹。编译内容在build文件夹,源代码在sources文件夹。
opencv-2.4.13.exe //这个是在Windows平台下编译过的可执行文件,里面可能包含多个vs版本。
opencv-2.4.13.zip //这个是opencv-2.4.13版本的源代码,和opencv-2.4.13.exe中的sources文件夹内容相 同。
opencv-2.4.13-master //和.zip版本一样。
方法一:创建属性表:
- 解压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盘根目录下
<img src="https://pic1.zhimg.com/50/d6135179281f46ce18ff9a6209d380d0_hd.png" data-rawwidth="821" data-rawheight="534" class="origin_image zh-lightbox-thumb" width="821" data-original="https://pic1.zhimg.com/d6135179281f46ce18ff9a6209d380d0_r.png">
二、配置系统环境变量
打开“系统属性”,点击“环境变量”
<img src="https://pic1.zhimg.com/50/d470fcfbc0bac0f7169574a144951dbc_hd.png" data-rawwidth="476" data-rawheight="598" class="origin_image zh-lightbox-thumb" width="476" data-original="https://pic1.zhimg.com/d470fcfbc0bac0f7169574a144951dbc_r.png">
双击Path的值部分
<img src="https://pic3.zhimg.com/50/f7d668ca7ff2646e6189b2d43f899c9a_hd.png" data-rawwidth="445" data-rawheight="560" class="origin_image zh-lightbox-thumb" width="445" data-original="https://pic3.zhimg.com/f7d668ca7ff2646e6189b2d43f899c9a_r.png">
填上OpenCV的bin路径
<img src="https://pic2.zhimg.com/50/c02b13011b23eead03bc7e944bb7d7e9_hd.png" data-rawwidth="651" data-rawheight="181" class="origin_image zh-lightbox-thumb" width="651" data-original="https://pic2.zhimg.com/c02b13011b23eead03bc7e944bb7d7e9_r.png">
注意:
1、此时电脑最好重启下。
2、如果你的应用程序是win32控制台应用程序,则选择x32的路径;如果你的应用程序是win64控制台应用程序,则选择x64的路径。(感谢 的指正和解惑。)
3、vc10, vc11, vc12 分别表示VS2010, VS2012, VS2013的Visual Studio使用的编译器版本,根据自己的VS版本来填写正确的编译器版本号。
三、创建VS新项目
<img src="https://pic4.zhimg.com/50/7f15f6fc91c9b851f0260c8cd93f20ef_hd.png" data-rawwidth="1366" data-rawheight="725" class="origin_image zh-lightbox-thumb" width="1366" data-original="https://pic4.zhimg.com/7f15f6fc91c9b851f0260c8cd93f20ef_r.png"> <img src="https://pic3.zhimg.com/50/d8f52c315f4a1f2f42624026d95fbd66_hd.png" data-rawwidth="665" data-rawheight="484" class="origin_image zh-lightbox-thumb" width="665" data-original="https://pic3.zhimg.com/d8f52c315f4a1f2f42624026d95fbd66_r.png"> <img src="https://pic3.zhimg.com/50/6f8bce65bad6ea387ca404858b7fc55e_hd.png" data-rawwidth="665" data-rawheight="483" class="origin_image zh-lightbox-thumb" width="665" data-original="https://pic3.zhimg.com/6f8bce65bad6ea387ca404858b7fc55e_r.png">
四、添加项目属性表
“视图”打开“属性窗口”
<img src="https://pic2.zhimg.com/50/99070c1452bd971d6652d9b1c7f7c939_hd.png" data-rawwidth="461" data-rawheight="693" class="origin_image zh-lightbox-thumb" width="461" data-original="https://pic2.zhimg.com/99070c1452bd971d6652d9b1c7f7c939_r.png"> <img src="https://pic2.zhimg.com/50/23b8967b62c6e5407d776d43e27b0ad5_hd.png" data-rawwidth="346" data-rawheight="328" class="content_image" width="346">
右击“Debug|Win32”点击“添加新项目属性表”(如果想在Release模式下使用OpenCV,右击Release|Win32,同理可得)<img src="https://pic2.zhimg.com/50/e83136838687ba83e81db9bbf4ede131_hd.png" data-rawwidth="351" data-rawheight="358" class="content_image" width="351">
给属性表命名
<img src="https://pic2.zhimg.com/50/7aed98411d80eb2c9eb51c42fd21f4e1_hd.png" data-rawwidth="937" data-rawheight="582" class="origin_image zh-lightbox-thumb" width="937" data-original="https://pic2.zhimg.com/7aed98411d80eb2c9eb51c42fd21f4e1_r.png">
五、配置项目属性表
双击创建的属性表
<img src="https://pic1.zhimg.com/50/27db5dbe81b73a35f8579b2b70004b68_hd.png" data-rawwidth="346" data-rawheight="318" class="content_image" width="346">
5.1添加包含目录
<img src="https://pic4.zhimg.com/50/7bc1ca5bb25dc0e38ef967d8ddb33c97_hd.png" data-rawwidth="755" data-rawheight="448" class="origin_image zh-lightbox-thumb" width="755" data-original="https://pic4.zhimg.com/7bc1ca5bb25dc0e38ef967d8ddb33c97_r.png"> <img src="https://pic4.zhimg.com/50/93d0664f7307cf57a640398c5454b7f7_hd.png" data-rawwidth="418" data-rawheight="397" class="content_image" width="418">
5.2添加附加库目录
<img src="https://pic2.zhimg.com/50/be61e855039c30f20822fc95ee0919f9_hd.png" data-rawwidth="750" data-rawheight="449" class="origin_image zh-lightbox-thumb" width="750" data-original="https://pic2.zhimg.com/be61e855039c30f20822fc95ee0919f9_r.png"> <img src="https://pic3.zhimg.com/50/55abca94d7eae1b35ac9cc5124bce092_hd.png" data-rawwidth="418" data-rawheight="397" class="content_image" width="418">
注意:
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模式。
<img src="https://pic3.zhimg.com/50/38daa2039c439378a5289b447b98725e_hd.png" data-rawwidth="753" data-rawheight="451" class="origin_image zh-lightbox-thumb" width="753" data-original="https://pic3.zhimg.com/38daa2039c439378a5289b447b98725e_r.png"> <img src="https://pic3.zhimg.com/50/dbfdceec72dfc7038037de6aa7bb5e66_hd.png" data-rawwidth="422" data-rawheight="399" class="origin_image zh-lightbox-thumb" width="422" data-original="https://pic3.zhimg.com/dbfdceec72dfc7038037de6aa7bb5e66_r.png">
六、引用项目属性表
打开项目目录,你会看到如下文件
<img src="https://pic2.zhimg.com/50/fd97db6c52b4ce078b34489c08b79aa5_hd.png" data-rawwidth="800" data-rawheight="324" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic2.zhimg.com/fd97db6c52b4ce078b34489c08b79aa5_r.png">
以后新建项目时,打开属性管理器,右击Debug|Win32选择添加现有属性表上述文件即可。
========================
请认准属性表,一次编写,到处使用,系统环境变量你都不需要设定,所有设定都写在属性表文件中,用的时候在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>
方法二:直接在“Microsoft.Cpp.Win32.user”上配置opencv的"包含路径"和"库路径
随便打开一个项目,然后点击菜单中的 视图->属性管理器(VS2010好像是 视图->其他窗口->属性管理器),打开属性管理器,点击项目前的箭头,展开项目,找到debug或者release下面的Microsoft.Cpp.Win32.user这个属性,双击会出现一个跟在项目上右键属性一样的窗口,修改里面的“VC++目录”就是修改了全局的,就是把opencv的include和lib目录加进去,重新打开VS或者新建项目也会继承这里的include目录和lib目录。如果要修改x64的包含目录就修改Microsoft.Cpp.Win64.user。
对VS2010往后的版本这个做法都好用,而且如果同时装了VS2010、2012、2013中的多个版本,改了一个其他的好像也会跟着变,这里不光可以改包含目录,还能改一些其他的默认属性,最好不要乱改,万一忘了原来是啥样就郁闷了。2.依次点开TURN2---Debug | Win32---Microsoft.Cpp.Win32.user
&amp;lt;img src="https://pic4.zhimg.com/50/d4b3312e12b57cc54b8c42d651eeb727_hd.png" data-rawwidth="922" data-rawheight="851" class="origin_image zh-lightbox-thumb" width="922" data-original="https://pic4.zhimg.com/d4b3312e12b57cc54b8c42d651eeb727_r.png"&amp;gt; 3.在Microsoft.Cpp.Win32.user上双击,打开对话框,填入路径"Include Directories" 和"Library Directories",题主肯定知道怎么做了
&amp;lt;img src="https://pic4.zhimg.com/50/5c8633e7b2fdae7abf305c6e7388b98b_hd.png" data-rawwidth="782" data-rawheight="609" class="origin_image zh-lightbox-thumb" width="782" data-original="https://pic4.zhimg.com/5c8633e7b2fdae7abf305c6e7388b98b_r.png"&amp;gt; &amp;lt;img src="https://pic4.zhimg.com/50/46e2cb51bb13eae95706ab0b96dad1cf_hd.png" data-rawwidth="782" data-rawheight="609" class="origin_image zh-lightbox-thumb" width="782" data-original="https://pic4.zhimg.com/46e2cb51bb13eae95706ab0b96dad1cf_r.png"&amp;gt;
4.设置链接器
&amp;lt;img src="https://pic1.zhimg.com/50/2c18fa481f19ec577f96df3e4e84307c_hd.png" data-rawwidth="782" data-rawheight="609" class="origin_image zh-lightbox-thumb" width="782" data-original="https://pic1.zhimg.com/2c18fa481f19ec577f96df3e4e84307c_r.png"&amp;gt;
5.还有一点,好像opencv3.0直接填入opencv_ts300d.lib;opencv_world300d.lib即可,不过我不太确定,还有待考证
6.具体细节请参考 [置顶] Win8.1+VS2013+OpenCV2.4.9+Kinect for Windows SDK v1.8开发环境配置
方法三:安装opencv插件
个人台式机上配置了opencv,并写了一个project。需要拿到另外一台计算机上运行(例如导师要检查程序,需要拷贝到他的电脑上去运行)。这时我们是不是需要考虑一下问题,导师电脑上是否安装opencv。如果安装了,安装的opencv2.x还是opencv3.x?opencv的库安装在那个目录?如果没有安装,是不是还得先给老师电脑上安装上opencv?
=========================20161215============================Visual Studio 有哪些好用的插件?
=========================20161214============================
---------------------------以下秘籍不仅适合opencv任何第三方库均适合---------------------------
在visual studio 中使用开源库,最简单的方法就是使用NuGet【 NuGet Gallery | Home】,这个vs是管理第三方库的最好用的插件了。
简单介绍一下吧。
1 如何安装
1)可以在主页上直接下载后安装。
2)可以&amp;lt;img src="https://pic1.zhimg.com/50/v2-7be36c2f026aecdb37f94b157c6a78a8_hd.png" data-rawwidth="473" data-rawheight="549" class="origin_image zh-lightbox-thumb" width="473" data-original="https://pic1.zhimg.com/v2-7be36c2f026aecdb37f94b157c6a78a8_r.png"&amp;gt;
&amp;lt;img src="https://pic4.zhimg.com/50/v2-b0b10fdb94be3e5c3a46f9c336b32923_hd.png" data-rawwidth="936" data-rawheight="646" class="origin_image zh-lightbox-thumb" width="936" data-original="https://pic4.zhimg.com/v2-b0b10fdb94be3e5c3a46f9c336b32923_r.png"&amp;gt; 在搜索框中输入 nuget package manger 等关键字安装。
2 安装第三方库
1)右击工程名-进入管理NuGet程序包
&amp;lt;img src="https://pic1.zhimg.com/50/v2-c216cb8977275419a278c48139483d90_hd.png" data-rawwidth="410" data-rawheight="619" class="content_image" width="410"&amp;gt;
2)安装第三方库
在搜索栏输入库名称例如opencv-安装即可。
&amp;lt;img src="https://pic4.zhimg.com/50/v2-38a7c67a00b25802da1978942447f04b_hd.png" data-rawwidth="900" data-rawheight="600" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic4.zhimg.com/v2-38a7c67a00b25802da1978942447f04b_r.png"&amp;gt; 3)开始使用吧。
正常使用opencv吧。但是会发现假如你只想使用opencv中某几个模块,但是它依然会把所有模块加载上来,并且会使得vs上的提示功能变慢。
把这个工程发给任何有vs的计算机上,如果发现他的计算机上没有Nuget管理的opencv库,则会自动下载安装。 至此问题解决。
4)管理本地第三方库
点击上图左下角的“设置”进入
&amp;lt;img src="https://pic3.zhimg.com/50/v2-aa2230e6a51dc8cc65f68f3e164a4232_hd.png" data-rawwidth="744" data-rawheight="487" class="origin_image zh-lightbox-thumb" width="744" data-original="https://pic3.zhimg.com/v2-aa2230e6a51dc8cc65f68f3e164a4232_r.png"&amp;gt;
我这有两个本地第三方库了。
在设置第三方库目录时,即库的存储目录尽量设置成和解决方案平行的目录。如果不这样,早晚会遇到坑。
5)常用c++库展示
&amp;lt;img src="https://pic1.zhimg.com/50/v2-db26b0495c0bb69640f2b97459bc2bdc_hd.png" data-rawwidth="399" data-rawheight="467" class="content_image" width="399"&amp;gt;
&amp;lt;img src="https://pic1.zhimg.com/50/v2-b1042be8c73d2b7bde8fc1cebdea4744_hd.png" data-rawwidth="402" data-rawheight="452" class="content_image" width="402"&amp;gt;
&amp;lt;img src="https://pic1.zhimg.com/50/v2-edfbd797a80f555b5a93cf34d3220ca8_hd.png" data-rawwidth="412" data-rawheight="420" class="content_image" width="412"&amp;gt;