我使用的是Ubunut 14.04,已经安装了OpenNI 2.2,Nite2.2和primesense2.2.0.30-5 (https://pypi.python.org/pypi/primesense/2.2.0.30-5)
上面提到的示例程序运行得很好,但是当我尝试使用initialize nite2时,程序崩溃了。
代码如下:
from primesense import openni2, nite2
openni2.initialize() # can also accept the path of the OpenNI redistribution
nite2.initialize()
if (nite2.is_initialized()):
print "nite2 initialized"
else:
print "nite2 not initialized"
dev = openni2.Device.open_any()
print dev.get_sensor_info(openni2.SENSOR_DEPTH)
depth_stream = dev.create_depth_stream()
depth_stream.start()
frame = depth_stream.read_frame()
frame_data = frame.get_buffer_as_uint16()
depth_stream.stop()
openni2.unload()错误报告:
Traceback (most recent call last):
File "test.py", line 4, in <module>
nite2.initialize()
File "/usr/local/lib/python2.7/dist-packages/primesense/nite2.py", line 81, in initialize
("\n ".join("%s: %s" % (dir, ex) for dir, ex in exceptions)),)
primesense.utils.InitializationError: NiTE2 could not be loaded:
/home/user/project/kinect/NiTE-Linux-x64-2.2/Samples/Bin/libNiTE2.so: /home/user/project/kinect/NiTE-Linux-x64-2.2/Samples/Bin/libNiTE2.so: undefined symbol: niteDumpUserTrackerCalibrationDataToFile
OpenNI2-FreenectDriver: Closing device freenect://0我想为用户跟踪和手跟踪nite python绑定。以前有人成功地做过吗?
发布于 2014-07-30 10:42:11
解决方法是注释来自primesense python绑定的文件_openni2.py中的以下行:
global _niteDumpUserTrackerCalibrationDataToFile
_niteDumpUserTrackerCalibrationDataToFile = dll.niteDumpUserTrackerCalibrationDataToFile
_niteDumpUserTrackerCalibrationDataToFile.restype = NiteStatus
_niteDumpUserTrackerCalibrationDataToFile.argtypes = [NiteUserTrackerHandle, NiteUserId, ctypes.c_char_p]另外,确保在NiTE2脚本所在的目录中有python库和文件夹(存档中的Redist/nite2)的副本/符号链接。
https://stackoverflow.com/questions/24287004
复制相似问题