Android Tensorflow Lite 的媒体图像到位图转换

Android Media Image to Bitmap Conversion for Tensorflow Lite

我正在获取相机输入并使用 Tensorflow Lite 模型对其进行处理以检测图像和手势。 Tensorflow lite 模型将位图作为输入。我正在拍摄 android 媒体图像 格式的相机图像。我的问题是我正在尝试将媒体图像转换为位图。我找到了以下内容。

  val buffer: ByteBuffer = image!!.planes[0].buffer
        val bytes = ByteArray(buffer.capacity())
        buffer.get(bytes)
        val bmp:Bitmap=BitmapFactory.decodeByteArray(bytes, 0, bytes.size, null)
      

但转换后的位图始终为空。请在我出错的地方以正确的方式指导我。 提前致谢。

空return值表明调用BitmapFactory.decodeByteArray时无法解码图像数据。您可以先检查一下您输入的内容。

这是关于如何将 android.media.image 转换为位图的另一个类似问题的 link:How to convert android.media.Image to bitmap object?

如果还是不行,你也可以尝试检查并处理Java错误,这个问题可能对你有帮助How do I keep track of Java Exceptions