【发布时间】:2012-07-05 05:26:16
【问题描述】:
我想使用 Kinect 将 RGB 和深度数据保存为帧。我在 matlab 上工作时没有 C# 经验。谁能建议我更简单的方法来完成这项任务。我需要这样做来构建用于活动识别的深度视频数据集。 Kinect SDK 提供的示例仅在按下按钮后保存一帧。我需要保存连续帧来注册活动。谁能帮我解决这个问题?
【问题讨论】:
我想使用 Kinect 将 RGB 和深度数据保存为帧。我在 matlab 上工作时没有 C# 经验。谁能建议我更简单的方法来完成这项任务。我需要这样做来构建用于活动识别的深度视频数据集。 Kinect SDK 提供的示例仅在按下按钮后保存一帧。我需要保存连续帧来注册活动。谁能帮我解决这个问题?
【问题讨论】:
您可以编辑 SDK 中提供的一些示例来保存连续的 PNG 帧。 特别是,DepthBasics 有一个方法 (ButtonScreenShotClick),每次用户单击按钮时都会调用该方法。如果你复制没有参数的方法,然后每次要保存图像时调用它,你应该已经准备好了。
【讨论】:
您为什么不使用 Kinect Studio 软件?它是在 Miscrosoft 发布 SDK 1.5 的同时提供的。
你可以下载它here(或使用这个link:直接下载包含KinectStudio的Kinect for Windows Developer Toolkit)
它可以逐帧注册RGB,深度帧以及骨架,您可以将它们保存到.xed文件。你可以重新播放这些帧(对于测试很有用,而不必每三秒站起来坐下)或use it for the training phase of machine learning algo (see slide 15).
这是应用程序的快照:
对于你的情况,我会使用它。
【讨论】:
您可以使用open source XEDConvertApp 转换来自 Kinect 或录制的 XED 的深度流,它也可以轻松扩展以保存视频。您可以使用 imageio.write 将视频帧保存为 PNG,然后在 Matlab 中打开它。但是,您需要将视频图像中的像素映射到深度帧中的像素深度。这可以使用 Kinect SDK 中的 U、V 映射轻松完成。您可以使用here 提供的源代码保存 UV 坐标。此示例使用 Kinect SDK 的 J4K Java 库。
【讨论】: