相关疑难解决方法(0)

将ImageProxy转换为位图

因此,我想探索新的Google的Camera API- CameraX。我想做的是每秒从相机提要中获取一张图像,然后将其传递到接受位图的功能中,以进行机器学习。

我阅读了有关Camera XImage Analyzer 的文档:

图像分析用例为您的应用提供了CPU可访问的图像,以执行图像处理,计算机视觉或机器学习推断。该应用程序实现在每个框架上运行的Analyzer方法。

..这基本上是我需要的。因此,我实现了这个图像分析器,如下所示:

imageAnalysis.setAnalyzer { image: ImageProxy, _: Int ->
    viewModel.onAnalyzeImage(image)
}
Run Code Online (Sandbox Code Playgroud)

我得到的是image: ImageProxy。我该如何将其转移ImageProxyBitmap

我试图这样解决:

fun decodeBitmap(image: ImageProxy): Bitmap? {
    val buffer = image.planes[0].buffer
    val bytes = ByteArray(buffer.capacity()).also { buffer.get(it) }
    return BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
}
Run Code Online (Sandbox Code Playgroud)

但是它返回null-因为decodeByteArray没有收到有效的(?)位图字节。有任何想法吗?

android android-camerax

6
推荐指数
5
解决办法
1606
查看次数

标签 统计

android ×1

android-camerax ×1