【问题标题】:Kinect v2, read out data from .xef filesKinect v2,从 .xef 文件中读取数据
【发布时间】:2014-12-03 20:08:27
【问题描述】:

我收集了一堆使用 Kinect for windows 2 使用文件扩展名为 .xef 的 kinect studio 的视频。

现在我想编写一个程序来从它们加载数据并播放或另存为另一种格式,但我发现这样做的资源很少,有什么有用的资源可以做到这一点吗?

【问题讨论】:

    标签: kinect


    【解决方案1】:

    实际上,您可以使用 Kinect Studio API 读取和播放自上一个 SDK 版本 (KinectSDK-v2.0_1409) 以来的 .xef 文件。它只是尚未正确记录,但可以集成到您的代码中。这是使用它的简短描述(在 VS 2013 C# 解决方案中尝试过):

    1. 进入 KinectStudio 的安装文件夹(例如 C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Tools\KinectStudio)。
    2. 在您的项目中引用“Microsoft.Kinect.Tools.dll”。
    3. 将“KStudioService.dll”复制到您的 Debug 或 Release 文件夹。
    4. 将 BuildProperties 更改为 x64(否则会出现 BadImageFormatException)。

    API 描述为here

    here 是来自 Microsoft Kinect 团队的 Carmine 的一些示例代码。

    【讨论】:

    • 您好,我已经成功运行了 Carmine 的示例代码,但我不知道如何从 KStudioPlayback 对象中获取颜色和深度图像。你对此有什么想法吗?
    • @0epsilon 你真的让这个示例代码工作了吗?我收到一个异常“值不在预期范围内”。调用 client.CreatePlayback 时(顺便说一句,使用 KSUtil 打开文件时相同,而 KStudio 可以播放文件而没有任何明显问题)。
    【解决方案2】:

    您可以使用 Kinect Studio 读取 xef 文件,然后转到播放(或播放)选项卡并点击播放,您的程序将开始流式传输。我认为这是做到这一点的唯一方法,就像它来自 kinect 一样。

    【讨论】:

    • 我也在寻找一种方法来模拟来自 .xef 记录的 Kinect 输入。这究竟是如何完成的?当我在 Kinect Studio 中加载要播放的文件并点击播放时,在我的 C++ 程序中,我可以成功获取带有 GetDefaultKinectSensor 的 Kinect 实例,调用 Open,获取 IBodyFrameSourceIBodyFrameReader,一切都很好,但是当我打电话给IBodyFrameReader::AcquireLatestFrame,它给了我“E_PENDING 完成此操作所需的数据尚不可用。”。与 SDK 中包含的示例代码相同,顺便说一句。
    【解决方案3】:

    似乎还没有办法解析 XEF 文件以直接提取图像。

    如果您不需要 XEF 文件中存储的所有帧,即丢帧是可以的,间接的方法是让 Kinect 应用程序通过 Kinect 服务从 XEF 文件接收帧。

    快速测试是:

    1. 启动 KinectStudio,连接 Kinect 服务,打开 XEF 文件。
    2. 启动 ColorBasics-D2D 或 DepthBasics-D2D(来自 Kinect v2 SDK)。
    3. 在 KinectStudio 中播放 XEF 文件。
    4. 颜色/深度帧显示在 ColorBasics 或 DepthBasics 应用程序中。

    然后您可以修改 ColorBasics 或 DepthBasics 中的源代码以相应地保存图像。如果您关心对齐深度和彩色图像,您可以修改 KinectFusionExplorer-D2D。

    这种方法只能捕获 XEF 中存储的帧子集,因为通过 Kinect 服务进行的播放和帧接收是异步的。因此,只有在您的程序中不存在丢帧问题时,它才会起作用。

    【讨论】:

    • 你是如何让它工作的?我理解这一点的方式是,在 Kinect Studio 的 Play 选项卡中重放数据时,这应该为其他 Kinect 应用程序模拟真实世界的 Kinect 设备,对吧?
    猜你喜欢
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多