【发布时间】:2016-11-03 04:06:46
【问题描述】:
背景:
我一直在使用 Unity3D 和 OpenCV 开发一个 AR 项目。集成已通过以下方式完成。
我们的 OpenCV 程序和 OpenCV 库本身编译成一个动态库(so 文件 Linux)。 (OpenCV库是静态链接的)
然后,在 Unity3D 中,我们在 C# 脚本中导入它 (DllImport) 并使用它的功能。
到目前为止,一切看起来都很清楚,但问题就在这里:这两个部分(Unity3D 和 OpenCV)都需要相机的每一帧,因此有多种方法可以为它们提供相机帧:
Unity3D 读取帧 (
WebCamTexture) 并通过转换为三个 2D 数组并传递给 OpenCV 部分来发送它们。 (这样OpenCV部分就无法访问camera了)OpenCV 部分读取帧 (
VideoCapture::open) 并发送回 Unity3D。 (这样Unity3D就无法访问相机了)两个部分都允许打开相机。
请注意,主要处理在 OpenCV 部分完成,Unity3D 只需要帧来显示相机预览。
问题:
一切都与性能有关!哪种方法在性能方面是最好的方法,并且是最佳实践的观点?
【问题讨论】:
标签: performance opencv unity3d augmented-reality