我正在研究一个适当的(或至少是简单的堆栈),以最终通过 OSX 平台上的 python api 从 kinect 获取骨架信息。我发现的大部分信息都非常分散且不连贯。
虽然基于 Windows 的堆栈似乎是微软在其 kinect SDK 之上的自己的 pykinect 似乎非常明显,但我似乎无法弄清楚什么在 OSX 环境中运行良好。
这是我到目前为止编译的信息:
- libfreenect是低级驱动程序的明显来源(这部分工作得很好)
- OpenNI提供框架 + NITE 中间件来提供识别。(不是蟒蛇)
- 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
是否有任何特定步骤可以在我缺少的 OSX 上构建它,例如环境变量以确保其指向正确的 python2.7 库?有没有人有这个平台的成功构建过程?
替代问题
这仍然是 OSX 最推荐的堆栈吗?
跟进
我已经接受我自己的答案作为临时工作解决方案。如果有人能提供更好的,我很乐意接受!