我正在使用Visual 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目录的内容复制到项目文件夹,但没有帮助。
发布于 2014-01-06 21:14:03
问题是,Qt5目前不适用于NiTE,但Qt4却起作用。使用QT4.8.5(在2010中)很好。请注意,Qt4只有32位,所以您需要使用32位版本的OpenNI和NiTE。
https://stackoverflow.com/questions/20862101
复制相似问题