首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity3D和OpenCV的集成和相互传递的相机帧

Unity3D和OpenCV的集成和相互传递的相机帧
EN

Stack Overflow用户
提问于 2016-11-03 04:06:46
回答 1查看 1.9K关注 0票数 1

背景:

我一直在使用Unity3D和OpenCV进行AR项目。集成是以以下方式完成的。

我们的OpenCV程序和OpenCV库本身编译成一个动态库(so文件Linux)。(OpenCV库是静态链接的)

然后,在Unity3D中,在C#脚本中导入它(DllImport)并使用它的功能。

到目前为止,一切看起来都很清楚,但问题在于:两个部分(Unity3D和OpenCV)都需要相机的每一个帧,因此有多种方法可以为它们提供相机帧:

  1. Unity3D读取帧(WebCamTexture)并通过转换为三个2D数组并传递到OpenCV部件发送它们。(通过这种方式,OpenCV部件无法访问照相机)
  2. OpenCV部件读取帧(VideoCapture::open)并发送回Unity3D。(通过这种方式,Unity3D无法访问照相机)
  3. 这两个部分都可以打开相机。

注意,主要处理是在OpenCV部件中完成的,Unity3D只需要帧来显示摄像机预览。

问题:

一切都是关于表演的!哪一种方法是最好的表现方式和最佳实践的观点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-03 14:31:29

在性能方面,你要么选择#2,要么制作你自己的插件,直接访问相机。

使用WebCamTexture的第一个选项是最简单的方法,但最大的问题是它不能提供足够的帧来执行视频处理。

此外,WebCamTexture在图像大小上有一个限制--它可以在iOS和Android上返回,这意味着您获得的图像质量将不同于设备所能提供的图像质量。因此,提供低质量的图像从相机。大多数视频处理API (如Vuforia )都使用自己的本地API来接收帧,您也应该这样做。

WebCamTexture不适合这样做。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40393715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档