OpenNi: set Player node for OpenFileRecording

OpenNi: set Player node for OpenFileRecording

本文关键字:for OpenFileRecording node Player set OpenNi      更新时间:2023-10-16

我在网上搜索了这个问题,但没有找到解决方案。

我开始使用OpenNI的样本来开发我的应用程序。我对c++没有多少经验,我是个初学者。

我使用的是OpenNI 1.5.4的SimpleSkeleton样本,它返回头部位置。我需要它,但使用ONI文件,我使用NiViewer录制,而不是来自kinect的流数据。

在网上搜索我发现:

xn::Context context;
xn::Player player; 
nRetVal = context.Init();   
nRetVal=context.OpenFileRecording("Myfile.oni",player);
if (nRetVal != XN_STATUS_OK)
{
    printf("Can't open recording file: %sn",xnGetStatusString(nRetVal));
    return 1;
}

我的代码进入if循环,打印'Can't open My file。oni……’就不再继续跑了。我认为问题在于设置玩家对象。我该怎么办?不然我该怎么办呢?

nRetVal=context.OpenFileRecording("Myfile.oni",player);
if (nRetVal != XN_STATUS_OK)
{
    printf("Can't open recording file: %sn",xnGetStatusString(nRetVal));
    return 1;
}

它可以正常运行,但使用kinect的数据流,而不是从文件。

即使看起来不是,这也是一个路径问题。我有一个类似的问题,你要么以一种不喜欢的方式将它传递给OpenNI,要么路径无效。

如何检索路径?尝试使用boost获取当前目录,然后将.oni文件名附加到该字符串