我正在尝试使用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目录的内容复制到项目文件夹,但它没有帮助。
答案 0 :(得分:0)
问题是Qt 5目前不能与NiTE合作,但Qt 4确实如此。使用Qt 4.8.5(在Visual Studio 2010中)工作正常。请注意,Qt 4只有32位,因此您需要使用32位版本的OpenNI和NiTE。