我试图在使用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目录的内容复制到项目文件夹,但没有帮助。
问题在于,Qt 5目前无法与NiTE配合使用,但Qt 4可以。使用Qt 4.8.5(在Visual Studio 2010中)可以正常工作。请注意,Qt 4只有32位,因此您需要使用OpenNI和NiTE的32位版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句