如何使用 python 保存 libfreenect2.Frame 数据
How to save libfreenect2.Frame data with python
我正在尝试为图像 class我正在尝试解决的化问题记录 kinectv2 数据。有什么办法记录kinectv2的数据吗?
我曾尝试使用 pickle 来保存深度数据,但是由于 libfreenect2
库中没有 __reduce__ 框架 class 的方法,我遇到了一个错误。
frames = listener.waitForNewFrame()
depth = frames["depth"]
with open("captures/frame_" + str(i) + "_depth.obj", 'w') as file:
pickle.dump(depth, file)
with open("captures/frame_" + str(i) + "_depth.obj", 'r') as file:
depth = pickle.load(file)
我遇到了给定的错误:
TypeError: no default __reduce__ due to non-trivial __cinit__
您的两个选择是:
使 class 可腌制。这涉及编辑 libfreenect2 的 Cython 代码。可能最可行的方法是 add a __reduce__
method,返回 Frame
构造函数和参数元组。
只需保存帧数据 - Frame
有一个 asarray
function 可以获取 Numpy 数组,并且有很多选项可以保存这些数据。这可能是最简单的方法。当你想加载它时,只需加载 Numpy 数组并用它调用框架构造函数。
我正在尝试为图像 class我正在尝试解决的化问题记录 kinectv2 数据。有什么办法记录kinectv2的数据吗?
我曾尝试使用 pickle 来保存深度数据,但是由于 libfreenect2
库中没有 __reduce__ 框架 class 的方法,我遇到了一个错误。
frames = listener.waitForNewFrame()
depth = frames["depth"]
with open("captures/frame_" + str(i) + "_depth.obj", 'w') as file:
pickle.dump(depth, file)
with open("captures/frame_" + str(i) + "_depth.obj", 'r') as file:
depth = pickle.load(file)
我遇到了给定的错误:
TypeError: no default __reduce__ due to non-trivial __cinit__
您的两个选择是:
使 class 可腌制。这涉及编辑 libfreenect2 的 Cython 代码。可能最可行的方法是 add a
__reduce__
method,返回Frame
构造函数和参数元组。只需保存帧数据 -
Frame
有一个asarray
function 可以获取 Numpy 数组,并且有很多选项可以保存这些数据。这可能是最简单的方法。当你想加载它时,只需加载 Numpy 数组并用它调用框架构造函数。