【发布时间】:2014-11-23 12:17:17
【问题描述】:
我想在不显示在屏幕上的原始图像上进行图像处理(我想根据图像数据进行一些计算,并根据这些计算在屏幕上显示一些结果。)我找到了一个有趣的答案 @987654321 @,显示在这里:
在 GPU 上进行实际处理:设置 OpenGL 上下文(OpenGL ES 2 教程),并在该上下文中创建一个 SurfaceTexture 对象。 然后将该对象传递给 setPreviewTexture,并开始预览。然后, 在您的 OpenGL 代码中,您可以调用 SurfaceTexture.updateTexImage,并且 与 SurfaceTexture 关联的纹理 ID 将更新为 来自相机的最新预览帧。您还可以回读 RGB 纹理数据到 CPU 以使用 glReadPixels 进行进一步处理, 如果需要。
我有一个关于如何实施它的问题。
我是否需要创建GLSurfaceView 和Renderer,我实际上并不想使用 OpenGL 在屏幕上绘制任何东西,所以我不确定是否需要它们?从我在网上阅读的内容来看,为了设置 OpenGL 上下文,拥有这些似乎非常重要?任何人都可以在这方面给我任何指示?
【问题讨论】: