在Qt 5项目中使用Nite 2

时间:2013-12-31 19:01:57

标签: qt openni nite

我正在尝试使用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目录的内容复制到项目文件夹,但它没有帮助。

1 个答案:

答案 0 :(得分:0)

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