在android中,我从这里获得了一个Image对象https://inducesmile.com/android/android-camera2-api-example-tutorial/这个相机教程.但是我现在想要循环显示像素值,是否有人知道我该怎么做?我是否需要将其转换为其他内容,我该怎么做?
谢谢
因此,我想探索新的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。我该如何将其转移ImageProxy到Bitmap?
我试图这样解决:
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没有收到有效的(?)位图字节。有任何想法吗?