我正在开发 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/