1

我已经尝试了几乎所有让 Kinect for Windows 实际生成图像的方法。我已经下载了 Daniel Shiffman 的 Openkinect 库并按照说明安装了它,但我收到了没有安装 kinect 设备的消息。我查看了 Lion 中的系统分析器,并获得了可用的相机和 Kinect 音频信息。尽管如此,我还是没有成功。我正在使用 RGBDepth 示例运行处理,每次尝试启用深度图像、RGB 图像或 IR 图像时都会收到空指针异常。我在想,因为程序无法“看到” Kinect,所以图像返回 null 并发生异常。我该怎么做才能让我的笔记本电脑“看到” Kinect?

另外,在你说插入 12V DC 适配器或切换 USB 端口之前,我已经这样做了。

2011 年底在 Macbook Pro OSX Lion 上运行

4

1 回答 1

0

编辑 2:工作代码: 这个分支已经包含我所做的更改的子集,并且实际运行。它不稳定,但至少您可以获得深度和彩色图像。 https://github.com/zarvox/libfreenect/tree/k4w-wip

不稳定性是由于达尔文 libusb 中的同步传输造成的。libfreenect 附带的补丁只是让 libusb 变得不那么不稳定。



主树不支持 Kinect for Windows。你试过这个补丁吗?https://github.com/renewagner/libfreenect/tree/k4w-wip

编辑:这个存储库对于我(我们)拥有的固件版本来说太旧了。

检测摄像头,您只需要在三个地方更改 usb_libusb10.c,它会检查desc.idProduct == PID_NUI_CAMERA. 现在必须是

(desc.idProduct == PID_NUI_CAMERA || desc.idProduct == PID_NUI_CAMERA_K4W);

并添加:

#define PID_NUI_CAMERA_K4W 0x02bf

还要记住,Windows 版 Kinect 没有电机。您可能需要修改假定它存在的源。

然而,这仍然是不够的。USB 命令也发生了变化。

在cameras.c中,

static int freenect_fetch_zero_plane_info(freenect_device *dev)
{
    freenect_context *ctx = dev->parent;

    char reply[0x200];
    uint16_t cmd[5] = {0}; // Offset is the only field in this command, and it's 0
    // Different reply based on hardware
    const int expected_reply_length = dev->kinect_for_windows ? 334 : 322;
    int res;
    res = send_cmd(dev, 0x04, cmd, 10, reply, expected_reply_length); //OPCODE_GET_FIXED_PARAMS = 4,
    if (res != expected_reply_length) {
        FN_ERROR("freenect_fetch_zero_plane_info: send_cmd read %d bytes (expected %d)\n", res, expected_reply_length);
        return -1;
    }

请注意,我在 freenect_device 中添加了一个字段来存储它是否是适用于 Windows 的 Kinect。

它仍然不是流数据,但据我所知。

于 2012-06-26T07:06:35.793 回答