none
Kinect如何只识别一个人 RRS feed

答案

  •  SkeletonStream对象有一个AppChoosesSkeletons属性,在默认情况下,该属性为False,即Kinect默认会追踪6个Player,只有2个Player同时处于活动的追踪状态。Kinect的SDK会对视野范围内的所有物体进行分析,如果有多个Player,他会对每个Palyer进行分析,分别产生骨骼信息数据。通过SDK产生的骨骼数据可以获取所有活动Palyer的骨骼信息,通过变量所有的骨骼数据,根据条件可以过滤选择需要追踪那一个Player,记下这个TrackingId并过滤。

     将AppChoosesSkeletons设置为True即表示手动选择需要追踪的TrackingId,这是您需要继续调用KinectStream的ChooseSkeletons方法,并传入需要追踪的TrackingId对象,这是,Kinect SDK仅对指定具有PlayerID为TrackingId的景深数据进行处理从而仅产生改TrackingId的骨骼数据,这样,在多个Player同时处于视野范围是可以减少Kinect SDK的处理负担,从而减轻CPU使用率。

    要识别一个人,只需要将KinectStream的AppChoosesSkeletons属性设置为True,并传入改玩家的PlayerID即可。需要注意的是:

    • 如果调用ChooseSkeletons方法主动设定选择的追踪ID,但是AppChoosesSkeletons的属性为false,就会引发InvalidOperationExcepthion的异常。
    • 如果在SkeletonStream开启前,将AppChoosesSkeletons设置为true,只有手动调用ChooseSkeleton方法后才会开始骨骼追踪。
    • 在AppChoosesSkeletons设置为 true之前,骨骼引擎自动选择追踪的游戏者,并且继续保持这些该游戏者的追踪,直到用户手动指定需要追踪的游戏者。如果自动选择追踪的游戏者离开场景,骨骼引擎不会自动更换追踪者。
    • 将AppChoosesSkeletons冲新设置为false后,骨骼引擎会继续对之前手动设置的游戏者进行追踪,直到这些游戏者离开视野。当游戏这离开视野时骨骼引擎才会选择其他的可能的游戏者进行追踪。

    2013年8月9日 15:01
    版主