我希望使用Kinect将RGB和深度数据保存为帧。我没有C#的经验,因为我在matlab上工作。任何人都可以建议我更轻松地完成这项任务。我需要这样做来构建用于活动识别的深度视频数据集。使用Kinect SDK提供的样本仅在按下按钮后保存一帧。我需要保存连续帧以注册活动。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
为什么不使用Kinect工作室软件?它是在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).
以下是该应用程序的快照:
根据您的情况,我会使用它。
答案 1 :(得分:3)
您可以编辑SDK中给出的一些示例以保存连续的PNG帧。 特别是,DepthBasics有一个方法(ButtonScreenShotClick),每次用户单击该按钮时都会调用该方法。如果你复制没有参数的方法,然后每次想要保存图像时调用它,你应该全部设置。
答案 2 :(得分:0)
您可以使用open source XEDConvertApp转换来自Kinect或录制的XED的深度流,这也可以轻松扩展以保存视频。您可以使用imageio.write将视频帧保存到PNG中,然后在Matlab中打开它。但是,您需要将视频图像中的像素映射到深度帧中的像素深度。这可以使用Kinect SDK中的U,V映射轻松完成。您可以使用可用的源代码here保存UV坐标。此示例将J4K Java库用于Kinect SDK。