【发布时间】:2012-10-19 22:49:29
【问题描述】:
我正在玩 OSCeleton 和 Processing 并成功地追踪骨骼并做一些事情。
我想知道是否有任何方法可以更改将“lost_user”消息发送到处理中的延迟时间。 这对于我想要实现的目标来说需要很长时间,因为我需要在用户离开屏幕后立即停止跟踪,这样我才能接受另一个用户的交互。 (想象一个很多人都想玩的装置)。
任何帮助/提示将不胜感激。
乔恩
【问题讨论】:
标签: java processing osc
我正在玩 OSCeleton 和 Processing 并成功地追踪骨骼并做一些事情。
我想知道是否有任何方法可以更改将“lost_user”消息发送到处理中的延迟时间。 这对于我想要实现的目标来说需要很长时间,因为我需要在用户离开屏幕后立即停止跟踪,这样我才能接受另一个用户的交互。 (想象一个很多人都想玩的装置)。
任何帮助/提示将不胜感激。
乔恩
【问题讨论】:
标签: java processing osc
据我所知,从 OSCeleton 的源代码和我对 kinect 的最少经验(我从未使用过 OSCeleton)来看,没有办法修改该代码来做到这一点。这似乎是由驱动程序或 kinect 自身处理的更底层的事情(?)。
但您不必为此束缚自己,如果我理解正确,我会建议几种绕过问题的方法。
首先,最新的驱动程序和示例应该支持多用户,这意味着您可以只安排谁是您的主要用户。从我可以从源代码中得知,当检测到新用户以及 ID 号时,您确实会在处理中收到一条 osc 消息。您可以将每个到达的新用户放入 arrayList 中,并找出一种不依赖最新用户的方法。
如果您仍然坚持用户后用户的事情,或者我对多用户支持有误(自述文件中没有提到),您可以检查自己是否有用户离开了该区域。尽管您无法获得这样的明确答案,但您可以检查例如,用户的特定关节或所有关节是否在最近收到的 10-20 条 osc 消息中移动。这可能意味着将这个关节的位置存储在一个 10-20 项数组中并不断更新,同时还要检查项是否不同。如果数组中的所有项目都相同,则您的用户没有移动一点,因此可能不应该考虑在内。
最后但同样重要的是,您可以切换到其他解决方案。我大约一年前使用的是“Synapse for Kinect”,现在看起来也很陈旧。您可以使用的最新版本是一个名为 SimpleOpenNI 的处理库,它绝对具有多用户跟踪功能,您不需要运行任何中间程序来为您提供关节。
希望对你有帮助
【讨论】: