java - ARCore 应用中的黑白视频流背景

标签 java android background-color augmented-reality arcore

我正在开发 AR Android 应用程序,当我接近可渲染对象时,我想将 AR 视频流的颜色设为黑白,当然可渲染对象除外。我搜索了文档,但它接缝我无法访问视频流来执行此操作,如 Exploring AR interaction (Google I/O '18) 中所示.

有谁知道如何做到这一点?

最佳答案

要从 ARCore 获取视频流,需要将纹理绘制到正在捕获的 OpenGL 3.1 上下文中。你可以找到here怎么做。

捕获视频流后,将彩色 video/image 转换为灰度的最简单方法(红色的平均值, green, and blue) 是使用零饱和度的颜色矩阵

以下是如何以编程方式执行此操作的 Java 代码摘录:

ColorMatrix BW_matrix = new ColorMatrix();
BW_matrix.setSaturation(0);

ColorMatrixColorFilter BW_filter = new ColorMatrixColorFilter(BW_matrix);
imageview.setColorFilter(BW_filter);

您只需将它应用于来自手机相机的视频流,而不是将 Sceneform 的 3D 模型添加到场景后的渲染结果。

关于java - ARCore 应用中的黑白视频流背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52868954/

相关文章:

java - 带有绘制正方形的 JPanel 无法正确显示

android - 如何在EditText中显示格式化文本?

html - 背景颜色跨越我的导航栏的宽度,而不是整个背景

android - 单击按钮时更改布局背景颜色

java - 当我运行 Spring Batch 作业时 chunkListener 不运行

java - 在 java.lang.String 类型上找不到属性 'someproperty'

java - 从 onOptionsItemSelected 显示对话框

java - 创建 Android .jar 文件

css - 使用 CSS 选择 2 悬停颜色

java - com.google.firebase.database.DatabaseException : Can't convert object of type java. lang.String 要输入