OpenCV中Kinect的使用(1)
图像处理中一般为了更好的获取外部信息都会使用到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 OPENNI 安装教程(for Win x64 i32)
2013-10-26
OpenCV中Kinect的使用(1)的更多相关文章
- OpenCV中Kinect的使用(3)
接OpenCV中Kinect的使用(2),下面内容主要讲述使用OpenNI 控制Kinect 的马达,实现摄像头的上下摆动. 下面是透过OpenNI比较低阶的USB控制介面(XnUSB.h),来做到马 ...
- OpenCV中Kinect的使用(2)
接OpenCV中Kinect的使用(1),主要讲述OpenCV中关于Kinect接口(类 VideoCapture )的一些使用介绍. 类 VideoCapture 支持Kinect传感器.使用 Vi ...
- opencv中Mat与IplImage,CVMat类型之间转换
opencv中对图像的处理是最基本的操作,一般的图像类型为IplImage类型,但是当我们对图像进行处理的时候,多数都是对像素矩阵进行处理,所以这三个类型之间的转换会对我们的工作带来便利. Mat类型 ...
- 解析opencv中Box Filter的实现并提出进一步加速的方案(源码共享)。
说明:本文所有算法的涉及到的优化均指在PC上进行的,对于其他构架是否合适未知,请自行试验. Box Filter,最经典的一种领域操作,在无数的场合中都有着广泛的应用,作为一个很基础的函数,其性能的好 ...
- OpenCV中IplImage图像格式与BYTE图像数据的转换
最近在将Karlsruhe Institute of Technology的Andreas Geiger发表在ACCV2010上的Efficent Large-Scale Stereo Matchin ...
- opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较
opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较 参考: http://wenku.baidu.com/link?url=1aDYAJBCrrK-uk2w3sSNai7h52x_ ...
- 混合高斯模型:opencv中MOG2的代码结构梳理
/* 头文件:OurGaussmix2.h */ #include "opencv2/core/core.hpp" #include <list> #include&q ...
- opencv中的.at方法
opencv中的.at方法是用来获取图像像素值得函数: interpolation:差值 histogram:直方图
- 【OpenCV】OpenCV中GPU模块使用
CUDA基本使用方法 在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下: 1.主机代码执行:2.传输数据到GPU:3.确定grid,block大小: 4.调用内核 ...
随机推荐
- XCode编译速度慢的解决方案
提升编译链接的速度主要有以下三个方式: 1. 提高XCode编译时使用的线程数 defaults write com.apple.Xcode PBXNumberOfParallelBuildSubta ...
- sqlserver 获取系统用户表结构信息
SELECT (case when a.colorder=1 then d.name else null end) 表名, a.colorder 字段序号,a.name 字段名, (case when ...
- [Android Traffic] 看无线电波如何影响网络操作]
转载自: http://blog.csdn.net/kesenhoo/article/details/7391031 Optimizing Downloads for Efficient Networ ...
- Centos6.5搭建RHCS集群-实现GFS+iSCSI网络共享存储
RHCS集群配置 需要用到的各组件功能:RHCS(Red Hat Cluster Suite):能够提供高可用性.高可靠性.负载均衡.存储共享且经济廉价的集群工具集合.LUCI:是一个基于web的集群 ...
- linux内核分析笔记----上半部与下半部(下)
接着上节的来,我们在上节说了软中断和tasklet,那这最后就是工作队列了哦.. 工作队列和前面讨论的其他形式都不相同,它可以把工作推后,交由一个内核线程去执行----该工作总是会在进程上下文执行.这 ...
- 【Hadoop】HDFS客户端开发示例
1.原理.步骤 2.HDFS客户端示例代码 package com.ares.hadoop.hdfs; import java.io.FileInputStream; import java.io.F ...
- ActiveMQ Spring 集成配置
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms&l ...
- Excel 将换行符替换为空
Step1:按快捷键Ctrl+H,打开"查找和替换"对话框: Step2:选择"查找内容"后的文本框,按住Alt键,在数字键盘中输入&quo ...
- Ubuntu git 安装、生成sshkey、克隆、切换分支
#1.安装git apt-get install git; #2生成公钥私钥文件 2.配置git账户: git config --global user.name "yourname&quo ...
- [性能测试] LoadRunner结果分析 – TPS(转)
[性能测试] LoadRunner结果分析 – TPS 针对吞吐率和 TPS 的关系,这个在结果分析中如何使用,就个人经验和朋友讨论后,提出如下建议指导,欢迎同僚指正. 相关定义 响应时间 = 网络响 ...