OpenCV开荒条件布置,VS2017成本境遇安插

OpenCV3.2.0+VS2017开发环境配置,opencv3.2.0vs2017

前言:

  1. OpenCV3.1.0版本以后已经将x86这个目录删除,在VS 2015环境下不能进行32位的OpenCV编译。
  2. 本文使用Windows10系统
  3. 2017年12月28日修改错误和更新方法:Debug和Release模式下,属性表的附加依赖项配置顺序相同会导致错误。相关信息正文已更新。

OpenCV学习笔记(一)——OpenCV开发环境配置

摘要:

由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而在AR中最重要的两个技术就是跟踪识别和增强渲染,其中跟踪识别是通过OpenCV这个开源的计算机视觉库来实现的,所以我就想着研究一下这个库,这里是个人的学习笔记,不是什么权威的教程,如果你们有错误也麻烦帮我指出哈。

=============================================分割线==================================================

 

前言:

什么是OpenCV?可能还有人不清楚吧,简单地说,OpenCV——Open Source Computer Vision Library,即开源计算机视觉库,它是基于C语言和部分C++语言来开发,可用于计算机视觉、图像处理以及模式识别和跟踪。

 

一、准备工作:

1.下载OpenCV安装包:

到OpenCV的官网( 64bit操作系统下进行开发,所以应该下载OpenCV for Windows:

图片 1

我们选择了当前的最新版本3.1,下载完毕后,我们得到其安装文件:opencv-3.1.0.exe

图片 2

2.安装Visual Studio 2015

 

二、安装配置:

 

1.安装:

双击打开下载好的opencv-3.1.0.exe文件,进行安装(其实是解压),选择安装目录:

图片 3

安装完毕之后,在其安装目录下可以看到两个文件夹:build和sources,其中build是OpenCV使用时要用到的一些库文件,而sources中则是OpenCV为我们提供的一些demo示范源码:

图片 4

 

2.环境变量配置:

上面步骤只是完成了安装,但是要能够正常使用OpenCV来进行开发,我们还需要进行环境变量的配置,我的电脑—>属性—>高级系统设置—>环境变量,找到Path变量,选中并点击编辑:

图片 5

64位系统的需要在path添加“;opencv安装路径buildx64vc14bin”(注:英文输入法中的“;”是分割符,用于与前面其他软件的配置参数分开),例如我的配置参数应该为:;E:OpenCVopencvbuildx64vc14bin。在之前的opencv版本中的配置时,32位系统应配置路径“;opencv安装路径buildx86vc14bin”,但是3.1.0版本的OpenCV已经将x86这个目录删除了,也就是说在VS 2015环境下不能进行32位的OpenCV编译。

还有一个要注意的就是x64文件夹下分为vc12和vc14两个文件夹,他们对应于VS的版本,例如VS2013应使用vc2012,而这里我们使用的是VS 2015,所以应该使用vc14文件目录:

图片 6

补充:vc8 = Visual Studio 2005,vc9 = Visual Studio 2008,vc10 = Visual Studio 2010,vc11 = Visual Studio 2012,vc12 = Visual Studio 2013,vc14 = Visual Studio 2015

 

注意:环境变量配置完毕之后,需要重启电脑才能生效!

 

3.VS 2015配置:

我们知道要在VS中使用外部的类库的话,需要进行引入的一下配置,这个配置就包括:外部库目录指定和外部包含文件指定。

打开VS 2015,新建一个空白的win32的控制台工程:

图片 7

选择语言为C++,Win32类型中的控制台工程,并设置工程名称:

图片 8

指定建立的工程为空白工程:

图片 9

建立完工程之后,我们选中解决方案栏中的ResourceFiles目录(即源码目录),然后新建一个C++源码文件:

图片 10

设置源码的文件名,例如:Main,然后创建此源码文件到工程中:图片 11

在VS中有个叫做“属性管理器”的工具,用于进行VS整体参数的配置,配置一次之后,以后所有新建项目都能应用改配置,不用再一一进行配置操作,使用起来也非常方便。点击工具栏中的:View—>Other Windows—>Property Manger打开属性管理器:

图片 12

在新出现的属性管理器栏中,展开目录,选中Debug|Win64中的Microsoft.Cpp.x64.user,并右键点击属性(Properties)进入属性界面:

图片 13

1)配置包含目录:

在通用属性(Common Properties)—>VC ++目录—>包含目录,然后点击右侧三角标志选中Edit进入编辑:

图片 14

向其中添加下面三个路径:

E:OpenCVopencvbuildinclude

E:OpenCVopencvbuildincludeopencv

E:OpenCVopencvbuildincludeopencv2

图片 15

2)配置库文件目录:

完成上面的包含目录配置之后,我们还需要进行库文件的配置:回到属性界面,选择包含目录下面的Library Directories(库文件目录):

图片 16

向库文件目录下添加OpenCV的库文件目录:E:OpenCVopencvbuildx64vc14lib,这个目录根据每个人自己在第一步安装OpenCV中选择的目录进行选定:

图片 17

3)配置动态链接库:

我们可以查看步骤2)中添加的库文件目录下面.lib文件列表,发现在3.1.0版本的OpenCV中,仅剩下两个库文件,分别是:opencv_world310.lib和opencv_world310d.lib,这里两个库文件的区别就是:opencv_world310.lib是Release模式版本,而opencv_world310d.lib是Debug模式版本:

图片 18

跟上述两个步骤相似,在属性界面中打开Linker(链接库)—>Input(输入)—>Additional Dependencies(添加依赖):

图片 19

将我们刚刚在OpenCV库文件目录下看到的两个库文件其中一个添加到这里(根据模式需求Release模式或Debug模式):

图片 20

其实,对已经发行和未来即将发布的新版OpenCV,只需看opencvbuildx86vc10lib下的库是哪几个,添加成依赖项就可以了。

 

三、实践:

在完成了上述所有配置工作之后,我们需要进行一次实测,用于验证以上配置是否成功。这里我们的测试demo功能很简单,就是在一个窗口中显示我们指定的一张图片。在之前的Main.cpp文件中添加以下代码:

 

#include 
#include 
#include 

using namespace cv;

int main(){
 // 读入一张图片(游戏原画)  
 Mat img = imread("pic.jpg");
 // 创建一个名为 "游戏原画"窗口  
 namedWindow("游戏原画");
 // 在窗口中显示游戏原画  
 imshow("游戏原画", img);
 // 等待6000 ms后窗口自动关闭  
 waitKey(6000);
}

将图片pic.jpg复制到工程目录下面,与源码位于同一目录:

 

图片 21
运行工程,假如一切都正常的话,会出现如下结果:

图片 22

 

四、可能出现的问题:

1.运行程序时,发现编译不通过,报一下错误:

图片 23

这个错误出现的原因是:我们之前说过在VS 2015中不能进行32位的OpenCV的编译,而且我们整个配置过程都是针对于64位系统而进行的,那么我们要如何才能让VS 2015运行64的调试模式呢,其实很简单,在工具栏中切换一下就好:

图片 24

2.无法加载图片,提示指针越位:

图片 25

出现这个问题一般可能有两个原因:

一是图片后缀名不对或者是目录存放位置不正确;

二是属性配置中的动态库配置中,带d和不带d的两个库文件配置情况与当前调试模式不对应,可以在解决方案中直接选中当前工程,右键进入属性面板,然后修改其Linker中的Additional Dependencies:

图片 26

 

摘要: 由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而...

第一部分:OpenCV3.2.0的下载

OpenCV官方下载地址:

本人选择opencv3.2.0基于Windows平台。读者根据自己需要选择合适版本及平台下载。

下载完成后,双击进行解压

解压即是安装OpenCV库的过程,读者自己选择好安装路径
【建议】在英文路径下,不用有中文和空格

一、 准备

1.安装Visual Studio 2015
2.在OpenCV网站下载OpenCV3.2.。
3.安装OpenCV。默认安装在C盘Program Files文件夹下,也可安装在自定义的路径下。(我安装在"E:ImportantAppOpenCV3.2"目录下,安装文件解压后会产生一个名为opencv的根目录,所以并不需要新建一个OpenCV3.2文件夹。)
安装即解压后,会在指定的路径下生成一个名为opencv的文件夹,它包含两个子文件夹,分别名为build和sources。build包含OpenCV的相关库文件,sources是OpenCV的源代码和demo示范源码。

第二部分:配置Path系统环境变量

此电脑-右键“属性”-高级系统设置

找到Path进行编辑
把之前解压(安装)好的OpenCV路径下的bin路径添加到Path系统环境变量中。

【建议】重启电脑

二、 配置OpenCV

第三部分:VS2017中配置OpenCV

Visual Studio2017官方下载地址:

选择社区版就行,安装过程很简单,一直下一步就行。

1.创建工程
快捷键:ctrl+shift+n

具体不会用Visual Studio创建工程的请自行百度

2.创建.cpp文件
快捷键:ctrl+shift+a

本人是在Debug x64下配置

3.打开属性管理器:视图=》其他窗口=》属性管理器

Debug x64右键“属性”

4.添加包含目录
vc++目录=》包含目录=》选择编辑

添加。 点图中箭头指的图标,把以下路径添加
(P.S.即之前解压(安装)好的OpenCV路径下)

5.添加库目录
VC++目录=》库目录
(P.S.即之前解压(安装)好的OpenCV路径下)

6.添加附加依赖项
链接器=》输入=》附加依赖项
手动敲入 opencv_world320d.lib
【注意】
1、320对应OpenCV3.2.0。其他版本请去网上找对应自己的版本进行编写添加。
2、后缀d代表Debug模式,如果是Release模式去掉d。依个人情况选择Debug模式或者Release模式。

到此,opencv3.2.0与vs2017开发环境已配置成功。

1.配置环境变量
  • 鼠标右击此电脑,点击属性选项->高级系统设置->高级->环境变量,在系统变量中选中Path变量,新建,输入”OpenCV安装路径opencvbuildx64vc14bin”(64位系统)。

图片 27

配置环境变量

图片 28

编辑环境变量

第四部分:测试效果

在项目里简单编写如下代码,若可以显示出图像,则配置成功。

2.工程包含(include)目录的配置
  • 1)打开VS 2015,单击菜单栏中的文件->新建->项目。在新窗口中选择Visual C++,Win32控制台应用程序,自定项目名称、位置。在弹出窗口中选择下一步,附加选项中对空项目打对勾。点击完成。
  • 2)新建项目后,在解决方案资源管理器的源文件处右键,添加->新建项,选择C++文件,进行命名,然后将其添加到工程中。
  • 3)在菜单栏单击视图(View)->其他窗口(Other Windows)->属性管理器(Property Manger),出现“属性管理器”工作区。此后有两种方法:1. 直接修改“Microsoft.Cpp.x64.user”属性文件 2. 删除方法1的属性文件并新建“OpenCV3.2PropertySheet”属性文件。方法一的修改更新到系统属性文件,一次设置此后新建的Visual Studio项目都可以使用OpenCV。方法二更加具体、灵活。
  • 4)在出现的“属性管理器”工作区,分别展开“Debug|X64”和“Release|X64”,删除“Microsoft.Cpp.x64.user”属性文件,分别右键“Debug|X64”和“Release|X64”文件夹,添加新项目属性表,命名为“OpenCV3.2PropertySheet_Debug.props”和“OpenCV3.2PropertySheet_Release.props”。此后对这两个文件的设置相同,唯一的不同点会特别说明。右键此属性文件来进行设置,单击属性(Properties)。
  • 5)打开属性页面,在通用属性(Common Properties)->CV++目录(VC++ Directories)->包含目录(Include Directories)中添加三个路径(具体安装路径自己调整)。

E:ImportantAppOpenCV3.2opencvbuildinclude
E:ImportantAppOpenCV3.2opencvbuildincludeopencv
E:ImportantAppOpenCV3.2opencvbuildincludeopencv2

图片 29

包含目录

测试代码

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main()
{
    Mat image = imread("D:\OutPutResult\OpenCVWorkPlace\OpencvTest\OpencvTest\2.jpg");  //存放自己图像的路径 
    imshow("显示图像", image);
    waitKey(0);
    return 0;
}
3.工程库(lib)目录的配置
  • 不要关闭“OpenCV3.2PropertySheet_Debug/Release.props”属性页。在通用属性(Common Properties)->CV++目录(VC++ Directories)->库目录(Library Directories)中添加以下路径:

E:ImportantAppOpenCV3.2opencvbuildx64vc14lib

图片 30

库目录

4.链接库的配置

  • 我们可以查看工程库(lib)目录的配置步骤中添加的库文件目录lib文件列表,发现在3.2.0版本的OpenCV中,仅剩下两个库文件,分别是:opencv_world320.lib和opencv_world320d.lib,两个库文件区别是: opencv_world320.lib是Release模式版本,而opencv_world320d.lib是Debug模式版本。
  • 同样在OpenCV3.2PropertySheet_Debug属性页,单击展开链接器(Linker)->输入(Input)->附加依赖项(Additional Dependencies),编辑添加 opencv_world320d.lib、opencv_world320.lib, OpenCV3.2PropertySheet_Release属性页则是opencv_world320d.lib、opencv_world320.lib,两种模式的设置顺序不同;

图片 31

添加附加依赖项

  • 确定后,显示为

图片 32

附加依赖项

  • Debug属性文件配置成功,在“属性管理器”工作区,用同样的方式设置“Release|X64”文件夹的“OpenCV3.2PropertySheet_Release.props”属性表。

图片 33

添加属性文件

  • 此时便可在X64平台Debug和Release两种模式下运行代码。在其他项目中如果要使用OpenCV库就可以直接复制添加两个属性文件(“OpenCV3.2PropertySheet_Debug/Release.props”),也是为什么要单独新建属性文件的原因。

三、测试示例程序——显示一张图片

  • 在文件中输入
#include <iostream>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  

using namespace cv;

int main() {
    // 读入一张图片(图片)    
    Mat img = imread("IMG_8066.JPG");
    // 创建一个名为 "Pic"窗口    
    namedWindow("Pic");
    // 在窗口中显示图片    
    imshow("Pic", img);
    // 等待6000 ms后窗口自动关闭    
    waitKey(6000);
}
  • 图片要放在项目里面,如图所示:
![](https://upload-images.jianshu.io/upload_images/1371509-6611f7ae60c56790.png)

图片路径
  • 选择X64平台,模式为Release或Debug,运行工程调试。
    效果图如下:

图片 34

效果图

转载时请附上本文的链接。

本文由澳门威斯尼人平台登录发布于服务器&运维,转载请注明出处:OpenCV开荒条件布置,VS2017成本境遇安插

相关阅读