我想使用 Kinect 将 RGB 和深度数据保存为帧。我在 matlab 上工作时没有 C# 经验。谁能建议我更简单的方法来完成这项任务。我需要这样做来构建用于活动识别的深度视频数据集。Kinect SDK 提供的示例在按下按钮后仅保存一帧。我需要保存连续帧来注册活动。谁能帮我解决这个问题?
3 回答
为什么不使用 Kinect Studio 软件?它是在 Miscrosoft 发布 SDK 1.5 的同时提供的。
您可以在此处下载(或使用此链接:直接下载包含 KinectStudio 的 Kinect for Windows Developer Toolkit)
它可以逐帧注册RGB,深度帧以及骨架,您可以将它们保存为.xed文件。并且您可以重新播放这些帧(对于测试很有用,而无需每三秒站起来和坐下)或将其用于机器学习算法的训练阶段(参见幻灯片 15)。
这是应用程序的快照:
对于你的情况,这就是我会使用的。
You can edit some of the samples given in the SDK to save continuous PNG frames. In particular, DepthBasics has a method (ButtonScreenShotClick) that is called each time the user clicks the button. If you make a duplicate of the method with no parameters and then call it everytime you want to save a image, you should be all set.
您可以使用开源 XEDConvertApp转换来自 Kinect 或录制的 XED 的深度流,它也可以轻松扩展以保存视频。您可以使用 imageio.write 将视频帧保存为 PNG,然后在 Matlab 中打开它。但是,您需要将视频图像中的像素映射到深度帧中的像素深度。这可以使用 Kinect SDK 中的 U、V 映射轻松完成。您可以使用此处提供的源代码保存 UV 坐标。此示例使用 Kinect SDK 的 J4K Java 库。