我正在尝试找到最快的方法来导出一个PNG序列或电影处理。我正在捕获Kinect数据,目前,在每次绘制调用中,我都在使用:
saveFrame("output/fames####.png");但这太慢了。有什么我能做的更快的吗?
我使用simple-openni作为kinect提要。
发布于 2012-07-01 06:53:59
您可以尝试保存到.oni format,并且已经有一个用于录制和回放的SimpleOpenNI Sample。即使这应该使用大量内存,我想它仍然可能比saveFrame()快。
使用.oni格式的优点是您可以轻松地处理使用SimpleOpeni记录的节点(例如,可以在.oni记录上测试骨架/手跟踪或其他特性)。如果你需要图像,应该有extract/parse .oni文件的方法
发布于 2012-06-30 05:01:32
处理/编码一帧需要多长时间(以及您可以接受的时间)?您可以尝试缓冲数据,并使其由固定数量的工作线程异步处理。否则,您将不得不求助于捕获视频,因为这样,安装的编解码器可以使用硬件加速/优化的基于CPU的编码。
编辑:为了吸收编码延迟,您可以使用Circular Buffer来转储需要编码的帧。然后,启动并行编码一组帧的Task。完成这些操作后,查看缓冲区中是否有帧并处理这些帧。
发布于 2012-12-12 13:05:14
这可能为时已晚,但如果您将它们保存为tif而不是png,则会获得更好的性能。
https://stackoverflow.com/questions/11268850
复制相似问题