图像处理中一般为了更好的获取外部信息都会使用到Kinect,其优势在于除了传统的RGB摄像头之外,还拥有一个获取深度信息的3D深度感应器,因此可以获得外界物体的3维信息实现物体的跟踪、手势识别等各项功能。更详细的介绍可参考:身體就是控制器,微軟Kinect是怎麼做到的?

下面介绍OpenCV中Kinect的一些简单的使用方法。

  • Kinect驱动的安装

  这里选择PrimeSense公司的OpenNI系列(开源+多平台64+32),主要由三部分组成(从底层到高层):PrimeSenser驱动(底层驱动),OPENNI软件包(提供硬件与应用软件连接的中间层),NITE软件包(负责手势和骨咯侦测)。

  安装顺序如下:

  1 OpenNI-Win32-1.3.2.1-Dev.msi

  2 avin2-SensorKinect-0e5a176\Bin\SensorKinect-Win-OpenSource32-5.0.3.3.msi

  3 NITE-Win32-1.4.0.5-Dev.msi

  4 Sensor-Win32-5.0.3.3-Redist.msi

  “OPENNI会根据(C:\Program Files\OpenNI)下面data下的3个xml文件来启动硬件(值得注意的是,它不是直接访问硬件传输数据,而是呼叫驱动代理C:\Program Files\PrimeSense\Sensor\Bin下面的*.exe[所以我们要先安装openNI再安装driver];

  安装好OPENNI和sensore dirver后,我们只可以运行openNI里面的部分事例(C:\Program Files\OpenNI\Samples);为什么是部分呢?因为OPENNI和骨咯软件NITE是联动的,里面高级的samples需要访问NITE引擎”。

  测试OpenNI驱动是否安装成功的简单方法便是运行其自带的sample,如C:\Program Files\OpenNI\Samples\Bin\Release下的NiViewer.exe。

  • 注意事项:  

  1:OpenNI官网上OpenNI以更新到2.0系列,其架构和组成已和1系列发生了很大的不同,其中包括安装方法,组成等,而且更重要的一点是现在OpenCV的版本中还没有开发出对应OpenNI2系列的接口,因此现在要通过OpenNI驱动Kinect的话必须要使用OpenNI 1系列,1和2系列的变化具体可参考官网:《Middleware Library Guidelines》

  2:要驱动Kinect的话,OpenCV应在自己的电脑上重新cmake过一遍,参见这里

  3:如果仅仅要利用Kinect获取深度图像的话,只需安装1和2即可,如果要加入手势识别和骨骼识别的话,3和4必不可少;

  4:无论你的电脑是32(x86)还是64bit,32bit的OpenNI驱动都可以顺利安装成功,同理,OpenCV也一样,一切都按照32bit的操作即可(包括VS的配置和使用);

  5:无法定位程序输入点XXXXX到OpenNI.dll库上的解决方法

参考资料:

使用Kinect传感器

Kinect OPENNI 安装教程(for Win x64 i32)

2013-10-26

OpenCV中Kinect的使用(1)的更多相关文章

  1. OpenCV中Kinect的使用(3)

    接OpenCV中Kinect的使用(2),下面内容主要讲述使用OpenNI 控制Kinect 的马达,实现摄像头的上下摆动. 下面是透过OpenNI比较低阶的USB控制介面(XnUSB.h),来做到马 ...

  2. OpenCV中Kinect的使用(2)

    接OpenCV中Kinect的使用(1),主要讲述OpenCV中关于Kinect接口(类 VideoCapture )的一些使用介绍. 类 VideoCapture 支持Kinect传感器.使用 Vi ...

  3. opencv中Mat与IplImage,CVMat类型之间转换

    opencv中对图像的处理是最基本的操作,一般的图像类型为IplImage类型,但是当我们对图像进行处理的时候,多数都是对像素矩阵进行处理,所以这三个类型之间的转换会对我们的工作带来便利. Mat类型 ...

  4. 解析opencv中Box Filter的实现并提出进一步加速的方案(源码共享)。

    说明:本文所有算法的涉及到的优化均指在PC上进行的,对于其他构架是否合适未知,请自行试验. Box Filter,最经典的一种领域操作,在无数的场合中都有着广泛的应用,作为一个很基础的函数,其性能的好 ...

  5. OpenCV中IplImage图像格式与BYTE图像数据的转换

    最近在将Karlsruhe Institute of Technology的Andreas Geiger发表在ACCV2010上的Efficent Large-Scale Stereo Matchin ...

  6. opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较

    opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较 参考: http://wenku.baidu.com/link?url=1aDYAJBCrrK-uk2w3sSNai7h52x_ ...

  7. 混合高斯模型:opencv中MOG2的代码结构梳理

    /* 头文件:OurGaussmix2.h */ #include "opencv2/core/core.hpp" #include <list> #include&q ...

  8. opencv中的.at方法

    opencv中的.at方法是用来获取图像像素值得函数: interpolation:差值 histogram:直方图

  9. 【OpenCV】OpenCV中GPU模块使用

    CUDA基本使用方法 在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下: 1.主机代码执行:2.传输数据到GPU:3.确定grid,block大小: 4.调用内核 ...

随机推荐

  1. 几种常用的json序列化和反序列化工具介绍

    一.前言 Json序列化和反序列化工作中会时常用到,也是目前数据交互的常用格式,Rest风格的接口加上json格式的数据交互,真的是天作之合. 目前Json字符与Json对象的相互转换方式有很多,接下 ...

  2. 可用性的维度(5E)

    可用性的维度 当我检查可用性文献时,我发现可用软件包含如用户友好.易学.可发现性.质量.有用的和阻止错误.在可用性工程中, Jakob Nielsen给出一个产品的五个属性:易学性.效率.可记忆性.容 ...

  3. ThreadPoolExecutor 的三种提交任务方式

    学习内容: ExecutorService线程池的应用... 1.如何创建线程池... 2.调用线程池的方法,获取线程执行完毕后的结果... 3.关闭线程...   首先我们先了解一下到底什么是线程池 ...

  4. win8 下脚本安装IIS

    @echo off      echo 正在添加IIS8.0 功能,依据不同的网络速率,全程大约需要5分钟时间...      start /w pkgmgr /iu:IIS-WebServerRol ...

  5. javascript快速入门27--XSLT基础

    XSL 与 XSLT XSL 指扩展样式表语言(EXtensible Stylesheet Language).它主要被用来对XML文档进行格式化,与CSS不同,XSL不仅仅是样式表语言XSL主要包括 ...

  6. elasticsearch term 查询之一

    1.前言 term级别查询将按照存储在倒排索引中的确切字词进行操作,这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段. 或者,它们允许您制作低级查询,并在分析过程之前进行. term级别 ...

  7. android中实现内容搜索

    在编写android搜索代码的时候,怎样去实现搜索功能,考虑中的有两种: 自己定义搜索方法: 1.自己定义搜索输入框,搜索图标,搜索button 2.自己定义语音输入方法 3.自己定义经常使用热词内容 ...

  8. antd-design LocaleProvider国际化

    1.LocaleProvider 使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效. import { LocaleProvider } from 'antd'; imp ...

  9. jQuery 文档操作 - prependTo() ,appendTo()方法

    其他jquery文档操作方法:http://www.w3school.com.cn/jquery/jquery_ref_manipulation.asp jQuery 参考手册 - 文档操作 appe ...

  10. Android创建JSON格式数据

    Android创建JSON格式数据 作为上一篇博客的补充,简单那解说了一下Android创建JSON格式数据的小Demo. 1. 创建JSON格式数据 对于Android创建JSON格式数据.因为An ...