我正在研究一个合适的(或者至少是直接的堆栈),以便通过OSX平台上的python api最终从kinect获取骨架信息。我发现的大部分信息都是相当分散的。在OSX上构建PyOpenNI
虽然看起来非常明显,基于Windows的堆栈将是微软自己的kinect SDK之上的pykinect,但我似乎无法弄清楚OSX环境中的工作原理。
这里是我目前所收集的信息:
- libfreenect是低级别的驱动程序的明显的来源(这部分工作得很好)
- OpenNI提供框架+ NITE中间件提供认可。 (不是Python)
- PyOpenNI - 支持骨架和其他高级功能的OpenNI的python绑定。
我得出结论,这是迄今为止最推荐的堆栈。我想实现的是简单的框架数据,类似于Windows SDK python包装器为您提供的框。最终,我将在一个基于PyQt的应用程序中使用它来绘制显示,然后将其应用到Maya中以应用数据。
我的问题是两个部分,如果它是最合适的我会接受一个答案在任一方向......
建设问题的PyOpenNI
到目前为止,我已经无法在OSX Snow Leopard(10.6.8)或Lion(10.7.4)上成功构建PyOpenNI。两个系统都更新了xcode。我已经注意到,源文件被硬编码为期望python2.7,所以在雪豹我不得不确保它被安装并且默认版本(也尝试过virtualenv)。
在Snow Leopard上,我看到cmake进程为Python找到了不同的库,头文件,bin,最终make产生了一个.so,与'不匹配的解释器'崩溃。
在Lion上,我也遇到了不匹配的解释器崩溃。但经过我通过自制安装python2.7,它产生了新的错误:
ImportError: dlopen(./openni.so, 2): Symbol not found: _environ
Referenced from: /usr/local/lib/libpython2.7.dylib
Expected in: dynamic lookup
在那里建造这个对我的思念,如环境变量以确保其指向正确的python2 OSX的任何具体步骤.7 libs?有没有人有这个平台的成功构建过程?
替代问题
这仍是OSX最值得推荐的堆栈?
跟进
我已经接受了我自己的答案是临时工作方案。如果有人能提供更好的,我会很乐意接受它!
返回的骨架数据是否正确?我没有测试过这么多。 –
@jmendeth:说实话,这只是得到它编译。本周我开始工作,开始使用这个新发现的信息,现在我的kinect只闪烁绿色,并显示检测到NUI电机。没有相机或音频。一直试图解决这个问题已经有两天了(在我的雪豹盒子里)。希望我能弄清楚从哪里可以找到来自社区的直接支持。我甚至无法开始使用该库。 glview(freenect)表示没有检测到设备。 – jdi
这对我有用 – Daryl