背景:
我一直在使用Unity3D和OpenCV进行AR项目。集成是以以下方式完成的。
我们的OpenCV程序和OpenCV库本身编译成一个动态库(so文件Linux)。(OpenCV库是静态链接的)
然后,在Unity3D中,在C#脚本中导入它(DllImport)并使用它的功能。
到目前为止,一切看起来都很清楚,但问题在于:两个部分(Unity3D和OpenCV)都需要相机的每一个帧,因此有多种方法可以为它们提供相机帧:
WebCamTexture)并通过转换为三个2D数组并传递到OpenCV部件发送它们。(通过这种方式,OpenCV部件无法访问照相机)VideoCapture::open)并发送回Unity3D。(通过这种方式,Unity3D无法访问照相机)注意,主要处理是在OpenCV部件中完成的,Unity3D只需要帧来显示摄像机预览。
问题:
一切都是关于表演的!哪一种方法是最好的表现方式和最佳实践的观点?
发布于 2016-11-03 14:31:29
在性能方面,你要么选择#2,要么制作你自己的插件,直接访问相机。
使用WebCamTexture的第一个选项是最简单的方法,但最大的问题是它不能提供足够的帧来执行视频处理。
此外,WebCamTexture在图像大小上有一个限制--它可以在iOS和Android上返回,这意味着您获得的图像质量将不同于设备所能提供的图像质量。因此,提供低质量的图像从相机。大多数视频处理API (如Vuforia )都使用自己的本地API来接收帧,您也应该这样做。
WebCamTexture不适合这样做。
https://stackoverflow.com/questions/40393715
复制相似问题