我正在尝试使用OpenNI2和NITE2 python绑定。我在Windows7下,我拥有Kinect SDK1.8、OpenNI 2.2和NITE 2.2,在VisualC++中没有出现32位版本的问题。我有python2.7.5 32位。
现在,我的目的是将NITE中提供的一些示例转换为python,但我仍然没有找到如何在程序崩溃的情况下创建UserTracker (HandTracker也是如此)。我已经能够运行提供的玩具例子 (它没有使用NITE)。这就是我正在做的,我得到的-which错误,我找不到很好的信息-
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绑定工作?如果是的话,我遗漏了什么吗?
发布于 2013-11-14 10:59:23
我终于能够让它正常工作了,但我确实认为关于Nite和primesense python绑定的版本很混乱,所以我将与您分享,以防有人遇到同样的问题。
当我发布我正在使用的问题时(如前所述),从openNI网站和Nite 2.2下载的python绑定。
我尝试从pyPi下载最新版本,即2.2.0.30-5,然后在初始化nite2 (nite2.initialize())时出错,因为它无法在pyPi中找到方法niteDumpUserTrackerCalibrationDataToFile。
“解决办法”?我将Nite降级为2.0版本,在该版本中实际存在该方法。我认为这是而不是最好的解决方案。Nite及其python绑定的最新版本应该一起工作,而不必破解代码或降级。
总之:它适用于python 2.2.0.30-5和Nite 2.0.0,但应该使用Nite 2.2。
发布于 2013-11-16 09:33:29
是的,niteDumpUserTrackerCalibrationDataToFile在2.2中缺失了,但是使用来自NiTE的NiTE 2.2还有另一个问题。
NiTE 2.2不能很好地使用ONI文件设备,因为它说它需要一个"PrimeSense SOC“设备。这可以通过在NiTE.ini中启用日志记录来发现。
https://stackoverflow.com/questions/19962339
复制相似问题