是否可以修改OSCeleton发送lost_user事件/消息的时间?

时间:2012-10-19 22:49:30

标签: java processing osc

我正在玩OSCeletonProcessing,并且成功地追踪骷髅并做事。

我想知道的是,如果有任何方法可以更改“lost_user”消息发送到Processing的延迟时间。 这需要很长时间才能实现我想要实现的目标,因为我需要在他离开屏幕后立即停止跟踪用户,这样我就可以接受其他用户的互动。 (想象一下许多人都想玩的装置)。

任何帮助/提示都会非常感激。

乔恩

1 个答案:

答案 0 :(得分:2)

据我所知,从OSCeleton的源代码和我对kinect的最小经验(我从未使用过OSCeleton),没有办法修改那些代码来做到这一点。它似乎是一个处理甚至更低的东西,由司机或kinect自己(?)。

然而,你不需要束缚自己,如果我理解得当,我会建议几种方法来绕过这个问题。

首先,最新的驱动程序和示例应该具有多用户支持,这意味着您可以只安排谁是您的主要用户。根据我从源头可以看出,您在处理时会在检测到新用户时获得一条osc消息以及一个ID号。您可以将每个到达的新用户放入arrayList中,并找出一种不依赖于最新用户的方法。

如果您仍在寻找用户之后的用户,或者我错误地了解多用户支持(在README中无处提及),您可以自己检查用户是否已离开该区域。虽然你无法得到一个明确的答案,例如你可以检查一个特定的关节或用户的所有关节是否已经收到了最后10-20个osc消息。这可能意味着将此关节的位置存储在10-20项阵列中并不断更新,同时还要检查项目是否不同。如果数组中的所有项都相同,则您的用户没有移动一点,因此可能不应考虑到这一点。

最后但并非最不重要的是,您可以切换到其他解决方案。我大约一年前用过的那个是“Synapse for Kinect”,现在看来也很陈旧。您可以使用的最新版本是一个名为SimpleOpenNI的处理库,它最终具有多用户跟踪功能,您不需要运行任何中间程序来为您提供关节。

我希望这会有所帮助