如何从 ImageAnalysis.Analyzer 显示图像?

问题描述

所以我是 Android 编程的新手,我正在尝试制作一个可以实时处理图像的应用程序。我已经实现了 the documentation 中的 Preview 用例以及 ImageAnalysis 用例。目前预览显示PreviewView 上,但我想在显示之前处理图像,所以简而言之,我想在 analyze() 方法中对框架做一些事情,然后显示此帧而不是 CameraX 预览。

顺便说一句,将 CameraX 用于此类目的是否有意义?最终我想使用 OpenCV 进行处理,但我选择了 CameraX,因为这样从相机获取图像很容易。

解决方法

ImageAnalysis 的输出显示为预览应该可以工作,但性能会受到影响,特别是如果您要首先通过 OpenCV 运行它。原型设计还可以,但我不建议将其用于真正的产品。

ImageAnalysis 的输出是 YUV_420_888。要显示它,您可以将其转换为 Bitmap 将其设置在 ImageView 上。见this script。在哪里进行转换取决于您的 OpenCV 库的输入/输出格式。