4

Kinect OpenNI 库使用自定义视频文件格式来存储包含 rgb+d 信息的视频。这些视频的扩展名为 *.oni。我无法找到有关 ONI 视频格式的任何信息或文档。

我正在寻找一种将传统 rgb 视频转换为 *.oni 视频的方法。深度通道可以留空(即归零)。例如,我有一个带有音频和视频通道的 MPEG-4 编码 .mov 文件。

必须如何进行这种转换没有任何限制,我只需要以某种方式转换它!即,imagemagick、ffmpeg、mencoder 都可以,C/C++ 等中的自定义转换代码也是如此。

到目前为止,我只能在 OpenNI 源代码中找到一个 C++ 转换实用程序。从它的外观来看,我将它从一个 *.oni 文件转换为另一个文件。我还设法找到了一个博士生的 C++ 脚本,它可以将学术数据库中的图像转换为 *.oni 文件。不幸的是,代码是西班牙语,不是我的母语之一。

非常感谢任何帮助或指示!

编辑:由于我的用例有点奇怪,可能需要一些解释。OpenNI 驱动程序(在我的例子中,我使用了出色的Kinect for Matlab 库)允许您在创建 Kinect 上下文时指定 *.oni 文件。这允许您模拟连接接收视频数据的真实 Kinect - 在您测试/开发代码时很有用(您不需要连接 Kinect 来执行此操作)。在我的特殊情况下,我们将在生产环境中使用 Kinect(工厂环境中的过程控制),但在开发过程中我只有一个视频文件 :) 因此想要转换为 *.oni 文件。我们目前没有使用深度通道,因此不关心它。

4

2 回答 2

4

我没有完整的答案,但请看一下 OpenNI/Samples 中的 NiRecordRaw 和 NiRecordSynthetic 示例。他们演示了如何使用任意或修改的数据创建 ONI。了解如何在 NiRecordSynthetic 中使用 MockDepthGenerator - 在您的情况下,您将需要 MockImageGenerator。有关更多详细信息,您可能想在 openni-dev 谷歌组中询问。

于 2012-11-11T08:37:26.523 回答
0

您是否查看过此命令及其相关文档

NiConvertXToONI -- NiConvertXToONI 打开任何记录,获取其中的每个节点,并将其记录到新的 ONI 记录中。它从命令行接收输入文件和输出文件。

于 2016-04-18T21:01:49.053 回答