VS2013配置 OpenCV3.0【实测有效】

 

  1. 下载OpenCV3.0.0 
    到OpenCV官网下载对应版本http://opencv.org/downloads.html,然后安装到相应目录,本例是安装到D:\opencv300目录中。

  2. 配置环境变量 
    2.1配置系统变量,首先找到“计算机”,右键“属性”–>“高级系统设置”–>“环境变量”–>“系统变量”。 
    进入系统变量

    2.2在系统变量中新建一个变量”OPENCV”,值为”D:\opencv300\opencv\build”,即找到OpenCV安装目录下的build的目录,因你安装目录不同而不同,切记复制。 
    配置OPENCV变量

    2.3在系统变量Path末尾添加“;%OPENCV%\x86\vc12\bin;%OPENCV%\x64\vc12\bin”,为了适应Win32和x64平台之间的切换,所以同时添加了两个bin目录。注意那个分号,而最后又没有分号。其他版本VS也是类似的,vc12对应vs2013,vc11对应vs2012,vc10对应vs2010。 
    添加Path变量

  3. OpenCV配置文件opencv300.props 
    新建一个后缀为.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;$(OPENCV)\include\opencv;$(OPENCV)\include\opencv2;$(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_ts300d.lib;opencv_world300d.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <AddtionalLibraryDirectories>%(AddtionalLibraryDirectories)</AddtionalLibraryDirectories>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup>
    <Link Condition="'$(Configuration)'=='Release'">
      <AdditionalDependencies>opencv_ts300.lib;opencv_world300.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <AddtionalLibraryDirectories>%(AddtionalLibraryDirectories)</AddtionalLibraryDirectories>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

对这个文件需要说的有几点,虽然粘在这了,如果大家对于XML配置文件有所了解的话,阅读节点名字就很清楚其作用。

3.1<IncludePath>这个节点包含头文件目录设置,注意$(OPENCV)变量,这个变量就是第二步新建的系统变量,为了适应性,包含3个include目录,大家可以自己打开相应目录查看一下会更加清楚。

3.2<LibraryPath>这个节点包含lib文件目录设置,可以看出为了适应性,通过条件来判断是win32还是x64的应用来包含对应的lib目录,这里可能有点多余,因为之前有说过vs2013是32位版本的,但这里只是为了适应性。

3.3<Link Condition="'$(Configuration)'=='Debug'"><Link Condition="'$(Configuration)'=='Release'">通过条件来判断是Debug版本的项目还是Release版本的项目,相应包含的lib会有所不一样,仔细观察可以看到Debug会在每个lib文件名中加入d字母,例如opencv_ts300d.libopencv_ts300.lib的区别。其实包含那么多lib是多余的,在OpenCV3.0.0有所改变,只需要两个lib即可,其为opencv_ts300d.lib;opencv_world300d.lib,Release版本对应去掉d字母即可。再啰嗦一点,这些lib都是步骤3.2中lib目录下面的lib文件,千万不要胡乱复制,不嫌麻烦最好自己一个一个对应添加一遍,仅需要一遍即可,以后只需添加这个配置文件就完成了OpenCV的配置,我就是一个一个对应添加过才是清楚其文件所需。

4. 为项目添加OpenCV配置文件opencv300.props 
创建一个Win32控制台应用程序, 然后在“属性管理器”中添加步骤3所建立的OpenCV配置文件。 
添加OpenCV配置文件 
当需要改为Release版本时,只需要在Release版本中添加配置文件即可。

5. 测试代码及结果

#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  

using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{
    // 读入一张图片,图片来源OpenCV的数据 ...opencv\sources\samples\data\目录下  
    Mat img = imread("lena.jpg");
    // 创建一个名为 "Demo"窗口  
    namedWindow("Demo");
    // 在窗口中显示图片  
    imshow("Demo", img);
    // 等待6000 ms后窗口自动关闭  
    waitKey(6000);
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

结果图

posted @ 2017-10-22 17:38  tantao258  阅读(328)  评论(0编辑  收藏  举报