OpenNI和OpenKinect有什么区别?

时间:2011-05-22 09:06:06

标签: kinect

我正在考虑在我的一个项目中使用Kinect,但我在所有库之间完全迷失了。不知道到底是什么。最重要的是,我正在阅读有关OpenNI和OpenKinect的内容。但不知道他们的关系/差异。 PS。我使用的是Ubuntu或Mac。

4 个答案:

答案 0 :(得分:37)

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)。这些差异往往会推动项目走向其中一个图书馆。

答案 1 :(得分:5)

我应该补充一点,OpenNI 2使OpenNI无法用于Windows以外的任何其他任何东西。

OpenInI 1.x与Kinect在其他平台上并不受到支持,直到名为avin2的人创建了SensorKinect项目,该项目位于OpenNI之上,并将Kinect的界面暴露给OpenNI。 OpenNI 2.0是一个重要的重构,并不支持除Kinect以外的任何其他东西。 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模型的东西。

答案 2 :(得分:4)

虽然这个问题是几年前的事,但我想补充一些我认识的问题。

我很业余,所以让Kinect在Mac上工作对我来说总是很难。我从github下载了代码并遵循了多条指令,但我无法使其正常工作。我记得,大约10个月前,我在Mac上获得了Kinect,OpenNI的工作,但它非常不稳定。 glview示例程序确实显示了Kinect的深度和彩色图像,但它偶尔会失败。

最近,我发现一个人为openni(1和2)创建了一个自制公式,以及NiTE和libfreenect。我试过,它在Mavericks 10.9.2 + 10.9.3上完美运行,所以如果你没有让Kinect正常工作,请看看: https://github.com/totakke/homebrew-openni

答案 3 :(得分:3)

在撰写本文时,OpenNi与Kinect for Windows兼容,而libfreenect则不兼容。