如何使用Java访问Kinect?

时间:2012-07-20 08:30:30

标签: java macos kinect processing

我目前正在参加计算机视觉课程,对于我的最终项目,我将制作一款与Kinect互动的小游戏。

现在我想用Java制作这个游戏,因为我之前从未真正想过制作游戏,而且我对语言很满意。但我似乎无法找到一种方法来访问深度数据(我只需将其打包成一些Java数据结构)和RGB数据(同样的想法)。

现在,我有办法与Kinect'交谈'。我按照this教程,可以使用终端中的glview命令检测kinect。

我有一个名为Processing的东西,它承诺是一个允许我使用Kinect的Java库,但是它使用的是自己的语言,它是使用Java“构建的”所以它不是真正的Java,这意味着我可以'使用所有GUI和普通的Java功能。

我想要做的是以某种方式调用Java程序顶部的一些import random.Kinect.code;,让我使用最基本的Kinect功能,比如getDepth()或getRGB(),并在Java中执行其他所有功能。

有谁知道我可以做到这一点的方式? (顺便说一句,我正在运行MAC OSX Lion)

3 个答案:

答案 0 :(得分:7)

如果您正在使用Processing,我建议您使用其中一个可用的包装器:

两者都有详细记录,并包含大量有用的示例。

simpleOpenNI sample

答案 1 :(得分:2)

我有完全相同的问题。我想在Java中使用Kinect进行计算机视觉研究,我有一个像你一样的Mac OSX Lion。我找到的解决方案是在我的Mac上运行Windows 7的虚拟副本(使用VMWare或Parallels或Microsoft HyperV),然后使用open source J4K Java for Kinect library,这是使用Java Native Interface的Kinect SDK的Java绑定(JNI)。当然,您也可以直接在运行Windows的计算机中使用此开源库。

Kinect的J4K Java库还有一个关于如何用10行Java代码编写基于kinect的应用程序的教程。

还有几个源代码示例向您展示如何从Kinect读取深度,视频和骨架数据,并在Java类中使用它们。您还可以使用多个Kinect,动画头像和其他示例。源代码示例的链接是here

开源Kinect Viewer的屏幕截图,对于像您这样的计算机视觉应用程序非常有用,如下所示:enter image description here

我希望这些信息有所帮助。

答案 2 :(得分:1)

我会给你一些想法,但我承认 - 我没有尝试使用Kinect。
您可以将问题归类为“如何通过Java访问某些硬件”的问题。 您向我们提供的教程提供了用于访问Kinect的库,甚至是用于访问的包装器 蟒蛇。
你可以做的是看看Python代码如何实现包装器,并使用JNI / JNA来构建自己的包装器。
另外,我查看了JNect项目,这里提到了@npinti发布的另一个答案。
eclipse插件有两个部分--JNI代码,它包含了严格的SDK代码,以及eclipse插件本身的Ecipse RCP代码。
我建议你忽略Eclipse RCP部分,并专注于他们的JNI实现,作为开发自己的JNI包装器所需的参考。
即使这是基于Windows的实现(即 - Kinect SDK在Windows上工作,你需要在mac上运行你的代码,例如) - 我认为通过阅读他们的代码+一些JNI教程+链接上的python包装器您提供的,您将了解如何为您提供的链接中显示的库创建JNI包装器。
另外,考虑使用JNA而不是JNI作为与硬件通信的方式,我发现它更容易。
最后一个选项可能是使用Java Script Engine并从你的java vode中调用Python代码(python包装器) - 不确定它对你有多大帮助,但你可以试一试。