我正在使用带有 Windows Kinect SDK 1.5 的 Kinect 开发游戏。Kinect 摄像头放在桌子上,我侧身站在 Kinect 旁边。我想显示播放器的骨架,如图 1 和图 2。 图 1 图 2
这些需要 Kinect Skeleton Stream 检测到的关节位置。但在大多数情况下,当玩家侧身站立时,Kinect 无法检测到隐藏在后面的某些关节。如图 1 所示,当我的手臂重叠时,我不希望隐藏手臂的关节显示在屏幕上。我只想显示我左臂的关节。另一种情况是,当我以正常方式放置手臂时,如图 2 所示,我想同时显示它们。
我的想法是使用关节的位置信息和跟踪状态来决定一个手臂是否在你身体的另一部分后面(有很多种重叠,arm-arm,arm-body,arm-head,-arm to leg) . 但我认为仅不显示 Kinect 未跟踪的关节是不够的。也许我们可以通过计算两个手腕、两个肘部和两个肩膀之间的距离来检测两个手臂是否重叠。如果两个手腕和两个肘部的距离都在阈值之内,说明双臂有重叠,我们可以只显示被跟踪的手臂骨骼的关节。
但是还有一个问题,手臂与身体的其他部位重叠的方式有很多,腿也是如此。所以这个解决方案在显示之前需要这么多的阈值和检查。此外,我不确定此解决方案的效果。
你们有更酷的想法来解决这个问题吗?