现在的位置: 首页 > 综合 > 正文

Kinect学习DAY2:OpenNI

2019年01月05日 ⁄ 综合 ⁄ 共 877字 ⁄ 字号 评论关闭

在学习Kinect的时候做了两个选择:

1. 用C++还是C#:C#以前并没有使用过,在跑kinect demo的体验中发现了这个抛弃指针的编程语言的确用起来轻松愉快,但是考虑到后续使用kinect与之前的工作对接、以及学习一门新语言的工作量,还是选择了C++(C++也不怎么好,编程渣渣- -)。

2. 用微软SDK还是OpenNI:严格地说两者都没有深入用,只能从别人的博文来判断了,首先是这里作者提到了两者的差异,仅从这篇文档来看,openNi似乎更符合我的要求,因为比起全身跟踪,对我来说配准彩色图像和深度图像似乎更为实用;但是,今年openNi更新到了2.x版本,看这里,openNi现在也是通过调用微软SDK的方式来实现,失去了跨平台的优势,好在nite等更新的也比较快,关于失去的彩色深度图像配准问题也有大牛提供了解决方法。考虑到SDK是微软亲儿子,所以决定从SDK来学学。

网上流传较广的一个DEMO,但是其年代比较久远,SDK版本可能还是1.0左右,新版本有很多地方的差异,包括头文件一些类的定义等等,比如MSR_NuiApi.h现在叫做NuiApi.h,NuiImageBuffer改名为了INuiFrameTexture,並定義於
MSR_NuiImageCamera.h 這個檔案;NuiImageBuffer.h 這個檔案已經不用
,KINECT_LOCKED_RECT更名为了NUI_LOCKED_RECT。所幸找到了zouxy09写的步骤,他是在opencv2.3+SDK 1.6环境下完成的。只要按照zouxy提示一步一步来就OK,终于抛出图像了,为了上面这新旧版本的小问题纠结好久真是弱爆了。

另外就是跑了C#和C++两种不同代码的DEMO以后,直观感受就是开发一个窗口WIN32程序,C#要简洁太多,友好太多,简单太多,C++简直是新手的魔鬼,有兴趣的同学可以比较一下toolkit中自带的colorbasic的两种语言不同版本的代码。当然,C++复杂应该精确的特点肯定有他自身的优势,只是博主编程太菜无法体会,anyway,继续啃C++代码。

抱歉!评论已关闭.