体感世界:KinectSDK和OpenNI开发对比

作者从OpenNI发布时起就开始研究和学习体感应用的开发,至今也有2年多了。今日公司项目的需求,转到了微软的SDK上,发现2者不但本质上区别甚大,SDK的使用上也有很大区别,下述的是2者的不同,以及一些开发注意事项。

关节坐标系:OpenNI和KinectSDK都是右手坐标系
关节坐标的单位:OpenNI坐标的单位是毫米,KinectSDK坐标的单位是米
深度数值的单位:OpenNI深度数值的单位是毫米,KinectSDK深度数值的单位是毫米

用户ID:
OpenNI可以通过GeneratorUser获取追踪用户和空闲用户的ID。
KinectSDK最大能同时识别到6个玩家,骨骼数组的Index映射了用户的ID。
MSDN:Although the player segmentation data is a separate logical stream, the depth data and the segmentation data are merged into a single pixel value for each frame. The value "0" indicates that no person was found at that location, the values "1" through "6" identify players. The values "1" through "6" map to elements 0 through 5 in the array of skeleton data.

KinectSDK的深度数据既包含距离信息也包含了场景标签信息。OpenNI的深度数据只包含距离信息,场景标签信息可以通过SceneMetaData获取。

未完待续

你可能感兴趣的:(体感世界:KinectSDK和OpenNI开发对比)