【问题标题】:Exception while Skeleton Tracking using openNI on pre-recorded ONI file在预先录制的 ONI 文件上使用 openNI 进行骨架跟踪时出现异常
【发布时间】:2012-10-27 08:33:33
【问题描述】:

我正在尝试在预先录制的 .oni 文件上运行示例 openNI Skeleton Tracking 应用程序(UserTracker.java 应用程序)。我编辑了 SamplesConfig.xml 文件以引导来自 ONI 文件的输入,而不是 Kinect(我实际上没有)。但是,我得到以下异常。有人可以帮我吗?

org.OpenNI.StatusException: Function was not implemented!

at org.OpenNI.WrapperUtils.throwOnError(WrapperUtils.java:30)

at org.OpenNI.Context.initFromXmlEx(Context.java:371)

at org.OpenNI.Context.createFromXmlFile(Context.java:36)

at UserTracker.<init>(UserTracker.java:149)

at UserTrackerApplication.main(UserTrackerApplication.java:67)

任何帮助将不胜感激。谢谢!

编辑:我找到了一个解决方案 here,这消除了我之前遇到的异常,但现在我得到了以下内容!

org.OpenNI.StatusException:此操作无效!

有人知道为什么会这样吗?

【问题讨论】:

    标签: java exception ubuntu-12.04 recording openni


    【解决方案1】:

    我遇到了类似的问题,我想从我生成的 .oni 文件中读取数据,但遇到了同样的问题。现在问题已经解决了,也许你也解决了,但我认为与可能来到这篇文章的其他人分享信息很重要。顺便在别人的帖子里发现了一些线索。

    所以这是解决方案。 NiUserTracker 示例可以与 .oni 文件一起使用,因此我检查了代码,他们执行以下操作:

    xn::Player g_Player; //Global variable
    

    // 这在主函数或其他函数中

    if (argc > 1)
    {
        nRetVal = g_Context.Init();
        CHECK_RC(nRetVal, "Init");
        nRetVal = g_Context.OpenFileRecording(argv[1], g_Player);
        if (nRetVal != XN_STATUS_OK)
        {
            printf("Can't open recording %s: %s\n", argv[1], xnGetStatusString(nRetVal));
            return 1;
        }
    }
    

    这是 C++ 代码,我使用 C++。所以你可以看到,如果他们想打开一个录制的 .oni 文件,他们不会通过 XML 文件初始化 kinect,他们只是通过 Init() 方法初始化它,然后用 openFileRecording 方法打开一个文件。

    如果你想打开一个 .oni 文件不需要修改你的 XML,这样你就可以做一个应用程序,让你选择是使用 .oni 还是 kinect .

    我希望这对某人有所帮助。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-05-26
      相关资源
      最近更新 更多