0

我正在尝试使用 Visual Studio 2012 在 Qt 5 项目中使用 Nite 2 制作 Kinect 骨架跟踪器。我在项目属性中包含了所有必要的文件夹。Qt 工作正常,但对 Nite 的初始化调用总是返回 STATUS_ERROR。我尝试在非 Qt 程序中初始化 Nite,它运行良好,所以问题似乎与 Qt 有关。我能够在 Qt 项目中初始化 OpenNI。

// main.cpp
int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    KinectWindow a;
    a.show();

    return app.exec();
}

// KinectWindow constructor
KinectWindow::KinectWindow(void)
    : QWidget()
{
    nite::Status status;

    status = nite::NiTE::initialize();

    if (status == nite::STATUS_ERROR)
    {
        exit(0);
    }

    else if (status == nite::STATUS_BAD_USER_ID)
    {
        exit(0);
    }

    else if (status == nite::STATUS_OUT_OF_FLOW)
    {
        exit(0);
    }
}

程序总是进入 if(status == nite::STATUS_ERROR)。我尝试将 REDIST 目录的内容复制到项目文件夹,但没有帮助。

4

1 回答 1

0

问题是 Qt 5 目前不适用于 NiTE,但 Qt 4 可以。使用 Qt 4.8.5(在 Visual Studio 2010 中)可以正常工作。请注意,Qt 4 只有 32 位,因此您需要使用 32 位版本的 OpenNI 和 NiTE。

于 2014-01-06T21:14:03.560 回答