处理 - 从kinect数据导出电影或图像序列

时间:2012-06-29 20:57:45

标签: video image-processing kinect openni

我正在尝试找到通过处理导出PNG序列或电影的最快方法。我正在捕获Kinect数据,目前,在每个绘制调用中,我正在使用:

saveFrame("output/fames####.png");

但这太慢了。我能做的任何事情都更快吗?

我正在使用simple-openni作为kinect feed。

3 个答案:

答案 0 :(得分:1)

您需要多长时间处理/编码一帧(以及您可以接受的时间)?您可以尝试缓冲数据并使其由固定数量的工作线程异步处理。否则你将不得不求助于捕获视频,因为这样,安装的编解码器可以使用硬件加速/优化的基于CPU的编码。

编辑:为了吸收编码延迟,您可以使用Circular Buffer转储需要编码的帧。然后,启动并行编码一组帧的Task。完成后,查看缓冲区中是否有帧并处理它们。

答案 1 :(得分:1)

您可以尝试保存到.oni format,并且已经有SimpleOpenNI Sample用于录制和播放。即使这应该使用大量内存,我想它可能仍然比saveFrame()

更快

使用.oni格式的优点是您可以轻松处理使用SimpleOpeni记录的节点(例如,骨架/手部跟踪或其他功能可以在.oni记录上进行测试)。如果您需要图像,应该有extract/parse .oni个文件

的方法

答案 2 :(得分:0)

这可能会迟到,但如果将它们保存为tif而不是png,则可以获得更好的性能。