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

摘要:

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

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

前言:

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

一、准备工作:

1.下载OpenCV安装包:

到OpenCV的官网(http://opencv.org/)下载最新版本的OpenCV安装包,由于OpenCV针对不同平台都有安装程序,所以我们只需要根据当前开发环境选择合适的平台版本即可,这里我们是在win7
64bit操作系统下进行开发,所以应该下载OpenCV for Windows:

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

2.安装Visual Studio 2015

二、安装配置:

1.安装:

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

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

2.环境变量配置:

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

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

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

补充: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的控制台工程:

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

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

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

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

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

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

1)配置包含目录:

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

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

E:\OpenCV\opencv\build\include

E:\OpenCV\opencv\build\include\opencv

E:\OpenCV\opencv\build\include\opencv2

2)配置库文件目录:

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

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

3)配置动态链接库:

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

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

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

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

三、实践:

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

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

using namespace cv;

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

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

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

四、可能出现的问题:  

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

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

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

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

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

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

时间: 2024-10-14 10:27:03

OpenCV学习笔记(一)——OpenCV开发环境配置的相关文章

Kinect学习笔记之三Kinect开发环境配置详解

0.前言: 首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本,SDK是Kinect for windows SDK 1.8版本.虽然前一篇博文费了半天劲,翻译了2.0SDK的新特性,但我还是决定要回退一个版本. 其实我之前一直在用2.0的SDK在调试Kinect,但无奈实验室提供的Kinect是for Windows 1.0版本的,而且Kinect从1.8之后就好像是一个分水岭,就比如win8和win7有很大的差别,2.0版的Kinect和SDK都是相较

Hibernate单表映射学习笔记之一——hibernalnate开发环境配置

1.什么是ORM? Object/Relationship Mapping:对象/关系映射 2.写SQL语句不好之处: (1)不同数据库使用的SQL语法不同(PL/SQL.T/SQL) (2)同样的功能在不同的数据库中有不同的实现方式(分页SQL) (3)过分依赖SQL语句对程序的移植和拓展不利 3.Hibernate (1)ORM框架技术 (2)对JDBC进行了非常轻量的对象封装 4.其他ORM框架技术 (1)Mybatis(前身为iBatis) (2)Toplink(现为Oracle As

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclipse方便. 下载 进入官网:http://eclipse.org/downloads/. 找到相应的版本进行下载,我这里用的是eclipse-SDK-3.7.1-linux-gtk版本. 解压 下载下来一般是tar.gz文件,运行: $tar -zxvf eclipse-SDK-3.7.1-linu

(转) 安装OpenCV:OpenCV 2.4.8或OpenCV 2.4.9 +VS 开发环境配置

因为读研期间的研究方向是图像处理,所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容.眼看自己积累到一定的程度了,于是决定开始开设这个OpenCV系列专栏,总结自己所学,也分享知识给大家. 好了,这篇文章作为OpenCV的启程篇,自然少不了先系统地介绍OpenCV开发环境的配置. 浅墨前后经历过OpenCV 2.4.6,OpenCV 2.4.7,OpenCV 2.4.8这三个版本的配置,有时候还要涉及到三个版本之间的转换,所以还是对OpenCV的配置有一定的理解的,希望自己的一

QT+opencv学习笔记一 opencv配置及Mat浅拷贝

今天终于把Qt + opencv配置成功了,中间有一些曲折,在这里记录一下. vs2013 + opencv的方法之前记录过,但这次的不太一样,我们一开始按照这篇文章配置pro Qt5中进行OpenCV开发教程 但是,死活出不来结果,研究发现,我们用的是 mingw 不是 vs,这个方法适合vs编译器 (具体可以参考:win7下的Qt环境+OpenCV视觉库) 后来,我们找到了这篇文章 QT creator+OpenCV2.4.2+MinGW 在windows下开发环境配置 但是还是有点曲折,

安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] 知乎:http://www.zhihu.com/people/mao-xing-yun 写作当前博文时配套使用的OpenCV版本: 2.4.8.2.4.9.3.0   ( 2014

CUDA学习日志:windows开发环境配置

接触CUDA的时间并不长,最开始是在cuda-convnet的代码中接触CUDA代码,当时确实看的比较痛苦.最近得空,在图书馆借了本<GPU高性能编程 CUDA实战>来看看. Jeremy Lin 什么是CUDA CUDA(Compute Unified Device Architecture)是一种专门为提高并行程序开发效率而设计的计算架构.在构建高性能应用程序时,CUDA架构能充分发挥GPU的强大计算能力.更多的介绍,可以参考NVIDIA的ABOUT PAGE. CUDA开发环境配置 在开

OpenCV 2.4.9 +VS2013 开发环境配置

配置环境变量 1.系统变量 Path:添加D:\Program Files\opencv\build\x86\vc12\bin 2.用户变量:添加opencv变量,值D:\Program Files\opencv\build,添加PATH变量(有就不需要添加,但是值需要添加)值D:\Program Files\opencv\build\x86\vc12\bin 说明:不管你系统是32位还是64位,路径目录均选择X86,因为编译都是使用32位编译:如果选用X64,则程序运行时候会出错.     新

【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

本系列文章由@浅墨_毛星云 出品.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 1.下载和安装OpenCV SDK VS2010不用说,肯定都安装了吧.来说说当前最新的OpenCV版本2.4.8(2014年2月24日),2.4.9 (2014年4月)的下载和安装.与其说是安装,不如叫解压更加合适,因为我们下载的exe安装文件就是一个自解压程序而已. 在官网:http://opencv.org/上找到OpenCV

Kinect开发笔记之三Kinect开发环境配置具体解释

0.前言: 首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本号,SDK是Kinect for windows SDK 1.8版本号.尽管前一篇博文费了半天劲,翻译了2.0SDK的新特性.但我还是决定要回退一个版本号. 事实上我之前一直在用2.0的SDK在调试Kinect,但无奈实验室提供的Kinect是for Windows 1.0版本号的,并且Kinect从1.8之后就好像是一个分水岭,就比方win8和win7有非常大的区别,2.0版的Kinect和S