首页 文章

Daniel Shiffman的Openkinect软件与Kinect for Windows没有运行RGBDepth示例

提问于
浏览
1

我已经尝试了让Kinect for Windows实际生成图像的所有内容 . 我已经下载了Daniel Shiffman的Openkinect库,我按照指示安装了它,但我收到的消息是没有安装kinect设备 . 我看一下Lion中的系统分析器,我有Camera和Kinect Audio信息 . 不过,我没有成功 . 我正在使用RGBDepth示例运行Processing,每次尝试启用深度图像,RGB图像或IR图像时,我都会得到nullpointerexception . 我在想,因为程序无法“看到”Kinect,图像返回null并发生异常 . 我可以做些什么让我的笔记本电脑“看到”Kinect?

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

2011年底在Macbook Pro OSX Lion上运行

1 回答

  • 0

    EDIT 2: Working code: 此分支已包含我正在进行的更改的子集,并且实际运行 . 它不稳定,但至少你可以获得深度和彩色图像 . https://github.com/zarvox/libfreenect/tree/k4w-wip

    不稳定是由于达尔文的libusb中的等时转移 . libfreenect附带的补丁只会使libusb不那么不稳定 .

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

    Edit :此存储库对于我(我们)拥有的固件版本来说太旧了 .

    detect 相机,你只需要在三个地方更改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
    

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

    然而,这仍然是不够的 . 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;
        }
    

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

    它仍然没有流数据,但这是我已经得到的 .

相关问题