【发布时间】:2016-10-25 19:25:30
【问题描述】:
我正在构建这个应用程序,我需要使用相机获取视频并使用 openCV 对其进行处理,并显示其中正在渲染的 3D 图形的视图。我正在使用两个片段。一种用于预览相机。还有一个用于 3D 图形。问题是 3D 图形视图必须是全屏的。我根本不想要相机预览。我可以使用线性布局并排显示它们。但我不能完全隐藏预览并让 3d 场景占据整个屏幕。即使使用相对布局也会导致相机预览撕裂 3D 图形视图。
简单地说,如果没有显示相机预览,则不会调用CvCameraViewListener2.onCameraFrame() 方法。没有它,我不会收到任何要处理的新帧。
【问题讨论】:
-
一般来说,您可以使用 FrameLayout 并将相机预览放在(按 z 顺序)3D 场景下。不幸的是,这并不可靠。当您恢复活动时,它有时会显示相机预览。最终的解决方案是使用 SurfaceTexture 并且 not 在您的 3D 场景中渲染此纹理,但这不是 OpenCV 原生相机的工作方式。您可以在 Java 中打开相机并将预览帧传递给(本机)OpenCV 进行图像处理。
标签: android opencv android-camera