我目前正致力于骨骼跟踪计划和我的环境 是广阔的区域,我必须使用超过1 Kinect覆盖整个区域。 但是,我不能同时NuiInitialize 2 kinects。请注意我使用 Microsoft KinectSDK Beta2。
有人可以帮我解决这个问题吗?
此处还有我的C ++代码。
int no_kinetics =0;
static INuiInstance* kinect_0=NULL;
static INuiInstance* kinect_1=NULL;
HRESULT hr, hr0, hr1, hr_init_0, hr_init_1;
hr = MSR_NUIGetDeviceCount(&no_kinetics);
hr_init_0 = MSR_NuiCreateInstanceByIndex(0, &kinect_0);
hr0 = kinect_0->NuiInitialize(NUI_INITIALIZE_FLAG_USES_SKELETON);
hr_init_1 = MSR_NuiCreateInstanceByIndex(1, &kinect_1);
hr1 = kinect_1->NuiInitialize(NUI_INITIALIZE_FLAG_USES_SKELETON);
,错误代码为-2097086294
答案 0 :(得分:0)
我一直有同样的问题,只是我使用C#。尝试使用深度+ player_info或骨架跟踪初始化两个Kinect时出错。
官方SDK附带的SDK示例从不做这样的事情。似乎有一种锁可以避免初始化两个运动。我现在还没有,是这种行为的原因。
尝试使用骨架跟踪进行初始化,使用简单深度(无玩家信息)进行初始化,并告诉我这是否对您没有影响。然后,这意味着我们更接近于知道这是一种共同/预期的行为。
请参阅: http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/3e72f577-b0a7-4621-9015-3d95eff3a857/
答案 1 :(得分:0)
您可以编写一个“服务器”程序,该程序使用kinect跟踪移动并通过tcp或udp调度点。因此,您可以使用更多运行更多服务器的设备。您的应用程序将成为“客户端”,从服务器获取跟踪点。如果kinect API不允许您选择使用kinect,则可以始终使用两台计算机。