我试图使用libfreenect Python绑定以一些合理的单位(厘米或不在乎)获得xbox kinect深度图像。

为此,我试图通过以下方式将默认的kinect深度模式设置为已注册(在C API中为FREENECT_DEPTH_REGISTERD;在Python中为freenect.pyx,则为DEPTH_register):

freenect.set_depth_mode(freenect.DEPTH_REGISTERED)


但是呼叫失败并显示错误:

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)

关于python - 如何使用libfreenect python绑定(bind)获取以厘米为单位的kinect深度图像数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23901220/

10-09 14:16