0

我正在尝试为我要解决的图像分类问题记录 kinectv2 数据。有没有办法记录kinectv2数据?

libfreenect2我曾尝试使用 pickle 来保存深度数据,但是由于Frame 类的库中没有 __reduce__ 方法,我遇到了错误。

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__ 由于非平凡的 __cinit__

4

1 回答 1

0

您的两个选择是:

  1. 使课程可腌制。这涉及编辑 libfreenect2 的 Cython 代码。可能最可行的方法是添加一个__reduce__方法,返回Frame构造函数和一个参数元组。

  2. 只需保存帧数据 - 它Frame有一个可以获取 Numpy 数组的asarray函数,并且有很多选项可以保存这些数据。这可能是最简单的方法。当你想加载它时,只需加载 Numpy 数组并用它调用框架构造函数。

于 2019-07-16T08:47:30.317 回答