使用2个Kinect进行检测
Using 2 Kinects for detection
我目前正在开发骨架跟踪程序和我的环境是宽的区域,我必须使用1个以上的Kinect来覆盖整个区域。但是,我不能同时NuiInitialize两个运动学。注意,我使用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);
错误代码为-207086294
我也遇到过同样的问题,只是我使用了C#。当我尝试用深度+player_info或骨骼跟踪来初始化两个Kinect时,我遇到了一个错误。
官方SDK附带的SDK示例从未做过这样的事情。似乎有一种锁可以避免初始化两个运动学。我现在还不知道,这就是为什么会有这样的行为。
试着用骨骼跟踪初始化一个,用简单深度初始化另一个(没有玩家信息),如果这对你来说没有失败,请告诉我。那么,这意味着我们更接近于知道这是否是一种常见/预期的行为
编辑:我在MSDN上找到了这篇文章,MS合作伙伴说:"请注意,视频API有一些限制,比如骨架跟踪和深度+播放器索引流只适用于索引为0的默认设备。编程指南中介绍了这些内容:http://bit.ly/KinectSDKProgrammingGuide"
请参阅:http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/3e72f577-b0a7-4621-9015-3d95eff3a857/
您可以编写一个"服务器"程序,使用kinect通过tcp或udp跟踪移动和调度点。因此,您可以使用运行更多服务器的更多设备。您的应用程序将成为"客户端",从服务器获取跟踪点。如果kinect API不允许您选择要使用的kinect,则可以始终使用两台计算机。
- 使用CMake检测支持的C++标准
- 当套接字连接断开时检测C/C++Unix
- C/C++预处理器是否可以检测一些编译器选项
- WMI检测进程创建事件-c++
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 下面是我为检测链接列表中的循环而制作的代码
- 落砂模拟碰撞检测C++和SFML
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么C++编译器没有检测到正确声明的类?
- 检测win32服务创建和删除的最佳方法
- 正在LLVM中检测整数比较条件
- 如何在鼠标挂钩过程中检测拖动
- 位移操作和位掩码未检测到重复字符
- 检测 COFF 对象文件中C++内联符号
- 无法在Windows中初始化Kinect(检测到0个传感器)
- 如何检测程序运行时 Kinect 何时断开连接/拔出
- 使用 Kinect SDK 进行简单的 blob 检测
- 使用 Kinect [Algo] 检测跳跃手势
- 使用2个Kinect进行检测
- OpenCV无法从Kinect检测人脸