如何使用libfreenect python绑定获取以厘米为单位的kinect深度图像数据?

如何使用libfreenect python绑定获取以厘米为单位的kinect深度图像数据?,python,kinect,depth,units-of-measurement,Python,Kinect,Depth,Units Of Measurement,我正在尝试使用libfreenect Python绑定,以合理的单位(厘米或英寸)获取xbox kinect深度图像 为此,我试图通过以下方式将默认的kinect深度模式设置为registered(C API中的FREENECT_depth_REGISTERD;根据FREENECT.pyx在Python one中注册的depth_): 但调用失败并出现错误: TypeError: set_video_mode() takes exactly 3 positional arguments (1 g

我正在尝试使用libfreenect Python绑定,以合理的单位(厘米或英寸)获取xbox kinect深度图像

为此,我试图通过以下方式将默认的kinect深度模式设置为registered(C API中的FREENECT_depth_REGISTERD;根据FREENECT.pyx在Python one中注册的depth_):

但调用失败并出现错误:

TypeError: set_video_mode() takes exactly 3 positional arguments (1 given)

在查看freenect.c之后,我找到了另外两个参数,但这又导致了另一个兔子洞。不知道该怎么办。我希望有一个好的python方法可以调用。感谢您的帮助。

freenect.set_depth_mode采用的另外两个参数是设备和分辨率。因此,您必须为函数提供一个设备。对于分辨率,您可以使用freenect.resolution_MEDIUM,它是默认的分辨率

一个有效的例子是:

mdev = freenect.open_device(freenect.init(), 0)
freenect.set_depth_mode(mdev, freenect.RESOLUTION_MEDIUM, freenect.DEPTH_REGISTERED)
freenect.runloop(dev=mdev)
mdev = freenect.open_device(freenect.init(), 0)
freenect.set_depth_mode(mdev, freenect.RESOLUTION_MEDIUM, freenect.DEPTH_REGISTERED)
freenect.runloop(dev=mdev)