Сбой при инициализации Nite в программе Python, написанной с использованием primesense2.2.0.30-5

Я использую Ubunut 14.04 и установил OpenNI 2.2, NITE 2.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

Мне нужны бесконечные привязки Python для отслеживания пользователей и отслеживания рук. Кто-нибудь делал это до того, как успешно


person Kanha    schedule 18.06.2014    source источник


Ответы (1)


Обходной путь - прокомментировать следующие строки в файле _openni2.py из привязок primesense python:

global _niteDumpUserTrackerCalibrationDataToFile
_niteDumpUserTrackerCalibrationDataToFile = dll.niteDumpUserTrackerCalibrationDataToFile
_niteDumpUserTrackerCalibrationDataToFile.restype  = NiteStatus
_niteDumpUserTrackerCalibrationDataToFile.argtypes = [NiteUserTrackerHandle, NiteUserId, ctypes.c_char_p]

Кроме того, убедитесь, что у вас есть копия / символическая ссылка как библиотеки NiTE2, так и папки (Redist / NiTE2 в архиве) в том же каталоге, что и ваш скрипт python.

person max    schedule 30.07.2014