我正在考虑在我的一个项目中使用Kinect,但是在所有库之间完全迷失了方向。不知道具体是什么。最重要的是,我读到关于OpenNI和OpenKinect的东西。但不知道它们之间的关系/区别。PS. 我正在使用Ubuntu或Mac。
我正在考虑在我的一个项目中使用Kinect,但是在所有库之间完全迷失了方向。不知道具体是什么。最重要的是,我读到关于OpenNI和OpenKinect的东西。但不知道它们之间的关系/区别。PS. 我正在使用Ubuntu或Mac。
OpenKinect是一个由人组成的社区,而不是一个库。OpenKinect社区发布了libfreenect Kinect驱动程序。libfreenect和OpenNI+SensorKinect是两个竞争的开源库/驱动程序。libfreenect(Apache 2.0或GPLv2)源自最初的反向工程/黑客Kinect驱动程序,而OpenNI+SensorKinect则源自开源(LGPL)PrimeSense代码。
这两个项目都适用于Windows、Linux(Ubuntu)和Mac OS X。这两个项目允许您访问相机的彩色和深度图像。这些项目不兼容,不能同时使用。
库之间的差异在于电机控制(libfreenect具有此功能,而OpenNI+SensorKinect没有),以及与NITE中间件的集成,用于更高级别的NUI支持(仅限OpenNI+SensorKinect)。这些差异往往会让项目倾向于其中一个库。
需要补充的是,OpenNI 2使得OpenNI在除Windows以外的其他平台上无法使用。
OpenNI 1.x与Kinect在其他平台上没有得到官方支持,直到一个名叫avin2的人创建了SensorKinect项目,该项目建立在OpenNI之上,并将Kinect的接口暴露给OpenNI。OpenNI 2.0进行了重大重构,对于Kinect,它仅正式支持Windows。 http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/a11ff6d9-7fbe-4636-8ff0-92d6220ac3f8/。在撰写本文时,OpenKinect在最新的Kinect(型号1473)上存在问题,这导致设备无法使用。我不知道是否正在进行修复。
因此,总结一下: - 如果设备型号1473的问题得到解决,那么OpenKinect是可行的选择。而且,坦率地说,我不会相信任何针对特定平台的其他东西。 - 在这个问题得到解决之前,你唯一的选择就是使用已经过时并停止开发的OpenNI 1.5 + SensorKinect,但它是与所有kinect模型兼容的唯一选择。目前为止,OpenNi与Windows版Kinect兼容,而libfreenect则不兼容。