【问题标题】:How to save libfreenect2.Frame data with python如何使用 python 保存 libfreenect2.Frame 数据
【发布时间】:2019-11-20 22:52:36
【问题描述】:

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

我尝试使用 pickle 来保存深度数据,但是由于 Frame 类的 libfreenect2 库中没有 __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__ due to non-trivial __cinit__

【问题讨论】:

    标签: cython python-3.5 pickle kinect libfreenect2


    【解决方案1】:

    您的两个选择是:

    1. 使类可腌制。这涉及编辑 libfreenect2 的 Cython 代码。可能最可行的方法是使用add a __reduce__ method,返回Frame 构造函数和一组参数。

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

    【讨论】:

      猜你喜欢
      • 2010-11-26
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多