我正在尝试使用 OpenNI2 和 NITE2python 绑定 http://www.openni.org/files/python-bindings。我在 Windows 7 下,Kinect SDK1.8、OpenNI 2.2 和 NITE 2.2 在 Visual C++ 的 32 位版本中正常工作。我有 python 2.7.5 32 位。
现在,我的目的是将 NITE 中提供的一些示例翻译为 python,但我仍然没有找到如何在不导致程序崩溃的情况下创建 UserTracker(HandTracker 也是如此)。我已经能够运行玩具示例 https://pypi.python.org/pypi/primesense/2.2.0.30-3提供(不使用 NITE)。这就是我正在做的事情和我得到的错误 - 我觉得信息不多 -:
In [1]: from primesense import openni2, nite2
In [2]: nite2.initialize()
In [3]: dev = openni2.Device.open_any()
In [4]: ut = nite2.UserTracker(dev)
---------------------------------------------------------------------------
NiteError Traceback (most recent call last)
<ipython-input-4-5be0b82b0a2b> in <module>()
----> 1 ut = nite2.UserTracker(dev)
C:\Python27\lib\site-packages\primesense-2.2.0.30_5-py2.7.egg\primesense\nite2.p
yc in __init__(self, device)
198 self._devstruct = _NiteDevStruct()
199 self._devstruct.device = device._handle
--> 200 c_api.niteInitializeUserTrackerByDevice(ctypes.byref(self._d
evstruct), ctypes.byref(handle))
201 HandleObject.__init__(self, handle)
202 _registered_user_trackers.add(self)
C:\Python27\lib\site-packages\primesense-2.2.0.30_5-py2.7.egg\primesense\_nite2.
pyc in wrapper(*args)
693 res = func(*args)
694 if res != NiteStatus.NITE_STATUS_OK:
--> 695 raise NiteError(res)
696 return res
697
NiteError: NiteStatus.NITE_STATUS_ERROR
我已经尝试在将设备的深度流传递给 UserTracker 创建者之前初始化它,但仍然不起作用。
有谁能让 NITE2 python 绑定工作吗?如果是这样,我是否缺少什么?
我终于能够让它工作了,但我确实认为有关 Nite 和 primesense python 绑定的版本存在混乱,所以我将分享以防有人遇到同样的问题。
当我发布问题时,我正在使用(如图所示)从 openNI 网站下载的 python 绑定,并且Nite 2.2 http://www.openni.org/files/python-bindings/.
我尝试从 pyPi 下载最新版本,即2.2.0.30-5 http://www.openni.org/files/nite/然后我在初始化 nite2 时遇到错误(nite2.initialize()
)因为它找不到方法niteDumpUserTrackerCalibrationDataToFile
在 C API 中。
解决方案”?我将 Node 降级到 2.0 版本,该版本实际上存在该方法。我认为这是not最好的解决方案。 Nite 的最新版本及其 python 绑定应该可以协同工作,而无需破解代码或降级。
总结一下:它对我有用python 绑定 2.2.0.30-5来自 pyPi 和奈特2.0.0,但应该与Nite 2.2.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)