随笔分类 -  OpenNI 2

对新版的OpenNI 2 SDK的安装到开发学习做个总结。
摘要:最近忙着写论文,已好长时间没瞎写了,这两天偶然看到一篇有关OpenNI2操作两个体感设备的文章,自己复制粘贴运行下看了效果挺好的,所以我大胆的搬过来,和大家分享分享~~~   设备准备:一个ASUS Xtion;一个Kinect for Xbox360; 驱动准备:我是win7下运行的,只要在设备管理器中显示如下效果,就没问题;要是有出现一个显示黄的,那就表示其中有一个显示不了,我目前的做法是:反复拔了再插,插了再拔,直到显示如下效果就OK; 阅读全文
posted @ 2013-03-13 12:16 叶梅树 阅读(8126) 评论(2) 推荐(0) 编辑
摘要:在谈谈NITE 2与OpenCV结合的第一个程序和谈谈NITE 2与OpenCV结合的第一个程序中我们都是在深度图像中对获得的手部信息进行处理,但不知道在彩色图像中,手部跟踪获得手心坐标是怎么样的?是否也和深度图像显示一样,能够很好的定位到真正的手心中?为了回答自己的这些问题,模仿谈谈人体骨骼坐标在彩色图像中显示中的方法,将通过NiTE2手部跟踪得到的手心坐标映射到彩色图像和深度图像中,并显示对比。具体解释和代码如下 阅读全文
posted @ 2013-01-29 14:54 叶梅树 阅读(4585) 评论(8) 推荐(0) 编辑
摘要: NITE 2的姿势探测识别功能和人体骨骼跟踪一样,是由UserTracker提供的,在NiTE 2.0版本中,提供了两种姿势:“POSE_PSI”(我称它为“投降姿势”)和“POSE_CROSS_HAND”(称之为“双手抱胸”),除此之外,我们没办法提供自己设定的特定姿势的探测和识别。 在之前的版本中,由于“POSE_PSI”是用来做骨架跟踪校正的标志姿势使用的,但后来NITE提供了不用校正姿势的情况下就可以进行骨架跟踪了,所以在没有特殊使用的情况下 阅读全文
posted @ 2013-01-25 12:19 叶梅树 阅读(4577) 评论(3) 推荐(1) 编辑
摘要:回顾还记得下面的图像吧。首先使用NiTE中间件获得骨骼数据;然后再利用到NiTE中的函数得到的深度图像mUserFrame.getDepthFrame();最后将骨骼坐标点映射到深度图像中。二、结合彩色图像显示骨骼坐标信息 深度数据毕竟不好看,而且显示效果不好,所以今天参照他人的代码和自身之前的博文“谈谈NITE 2与OpenCV结合的第二个程序(提取人体骨骼坐标)”和“谈谈OpenNI 2与OpenCV结合的第一个程序”整理结合,将骨骼坐标信息显示到彩色图像中,具体不做分析了,直接上代码 阅读全文
posted @ 2013-01-22 10:36 叶梅树 阅读(6002) 评论(16) 推荐(3) 编辑
摘要:在谈谈NITE 2与OpenCV结合的第一个程序中,通过手心坐标能够粗略的截取手的图像信息,但还是有种意犹未尽的感觉,所以今天根据OpenCV常用的轮廓、凸包等图像处理函数,在此基础上,获得指尖坐标(我表示很粗糙,请高手们勿喷~~~)。 这里废话不多说了,直接上代码: 阅读全文
posted @ 2013-01-19 10:16 叶梅树 阅读(6896) 评论(12) 推荐(0) 编辑
摘要:NITE 2的基本使用主要包括以下几个步骤: 1. 初始化NITE环境: nite::NiTE::initialize(); 2. 创建User跟踪器: nite::UserTracker mUserTracker; mUserTracker.create(); 3. 创建并读取User Frame信息:nite::UserTrackerFrameRef mUserFrame; mUserTracker.readFrame( &mUserFrame ); 4. 从User Frame信息中获取User信息: const nite::Arraynite::UserD 阅读全文
posted @ 2013-01-16 12:17 叶梅树 阅读(7159) 评论(5) 推荐(1) 编辑
摘要: 在OpenNI 1.X的时候,OpenNI的整个framework是采用类似plug-in的机制,让开发者可以利用OpenNI所提供的标准框架,使用中间件(Middleware)提供的人体跟踪技术、手部跟踪等功能,不过在OPenNI 2 SDK的时候,为了简化架构、增加开发的弹性,所以把这个架构移除了,现在的整个框架如下图所示(截取于OpenNI官网): 阅读全文
posted @ 2013-01-12 14:41 叶梅树 阅读(2513) 评论(0) 推荐(0) 编辑
摘要:开始之前,让我们自己开始再熟练熟练NITE 2的基本使用,主要包括以下几个步骤: 1. 初始化NITE环境: nite::NiTE::initialize(); 2. 创建User跟踪器: nite::UserTracker mUserTracker;mUserTracker.create(); 3. 创建并读取User Frame信息:nite::UserTrackerFrameRef mUserFrame; mUserTracker.readFrame( &mUserFrame ); 4. 从User Frame信息中获取User信息:const nite::Arrayni 阅读全文
posted @ 2013-01-12 13:44 叶梅树 阅读(3816) 评论(8) 推荐(2) 编辑
摘要:开始之前,让我们自己开始再熟练熟练OpenNI 2的基本使用,主要包括以下几个步骤:1. 初始化OpenNI环境:openni::OpenNI::initialize(); 2. 声明并打开Device设备:openni::Device devAnyDevice;devAnyDevice.open( openni::ANY_DEVICE ); 3. 创建并打开深度数据流:openni::VideoStream streamDepth;streamDepth.create( devAnyDevice, openni::SENSOR_DEPTH );streamDepth.start();4. . 阅读全文
posted @ 2013-01-11 18:14 叶梅树 阅读(12983) 评论(6) 推荐(3) 编辑
摘要:我觉得学习一个新的API,最好的办法是学习它提供的Samples。今天根据自己的了解,分享我自己对新的NITE 2的了解,首先看看NITE2 中提供的UserViewer,将它提供的工程文件夹导入到VS2010中,运行,直接看运行结果: 当人体出现在Kinect面前时,就能获取身体深度图像,当做出POSE_CROSSED_HANDS(“双手抱胸”)的动作时,就开始骨骼跟踪,最多获取全身15个主要关节点坐标的3D信息。现在开始代码的了解。首先看主函数main():#include "Viewer.h"int main(int argc, char** argv){ openn 阅读全文
posted @ 2012-12-29 10:27 叶梅树 阅读(4166) 评论(6) 推荐(0) 编辑
摘要:我觉得学习一个新的API,最好的办法是学习它提供的Samples。今天根据自己的了解,分享我自己对新的NITE 2的了解,首先看看NITE2 中提供的HandViewer,将它提供的工程文件夹导入到VS2010中,运行,直接看运行结果: 当一只手做出“向前推”或者“左右摇摆”时,就能获取手心坐标,并进行跟踪,其它手做相同的动作也能识别并跟踪。现在开始代码的了解。首先看主函数main() 阅读全文
posted @ 2012-12-28 12:29 叶梅树 阅读(4126) 评论(4) 推荐(2) 编辑
摘要:对于新的东西总是很有激情,昨天安装了最新版的OpenNI 2 SDK,发现很多东西跟之前的不太一样了,今天根据OpenNI 2自带的程序捯饬捯饬,初看怎么使用,废话不多说,直接上图说话。 1. 创建新的C++控制台项目MyMyOpenNI2SimpleView,具体省去; 2. 首先跟使用传统的OpenCV等类似,都需要进行配置,右键点击项目,选择属性窗口,选择VC++目录,在右边包含目录中输入需要载录库的include文件夹,其中包括OPenNI2的include文件夹和需要用到的GL文件夹; 阅读全文
posted @ 2012-12-25 11:11 叶梅树 阅读(17306) 评论(5) 推荐(2) 编辑
摘要:在OpenNI 1.X的时候,OpenNI的整个framework是采用类似plug-in的机制,让开发者可以利用OpenNI所提供的标准框架,使用中间件(Middleware)提供的人体跟踪技术、手部跟踪等功能,不过在OPenNI 2 SDK的时候,为了简化架构、增加开发的弹性,所以把这个架构移除了,现在的整个框架如下图所示(截取于OpenNI官网): 上图中绿色部分就是OpenNI 2所提供的功能,但中间件已经和之前的版本大不相同了,具体可以參考官方的 阅读全文
posted @ 2012-12-24 20:25 叶梅树 阅读(7717) 评论(8) 推荐(3) 编辑

点击右上角即可分享
微信分享提示