java - 如何将 .png 图像转换为字节数组 - Android、TFLITE 应用程序
问题描述
我已经制作了一个TFLITE模型,并且正在使用Google 的 ML KIT从我的移动应用程序中访问它。我在尝试将我的数据转换为byte[1][299][299][3]
我需要提供给我的分类器的格式时遇到了麻烦。
我试图将 a 安排bytestream
成那种格式,但我不知道它是否在馈送left-right
、top-bottom
、 RGB 等。
谁能指出我可以阅读的有关解析.png
文件的一些文档?
解决方案
Bitmap
您可以使用 aBitmapFactory
和.png 文件将您的 .png 文件转换为 Android InputStream
。
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] image = stream.toByteArray();
使用您的位图,您还可以获得指定位置的像素颜色。不幸的是,颜色返回为int
,您必须将其分解为 RGBA 值。为此,请参阅:https ://developer.android.com/reference/android/graphics/Color
推荐阅读
- vba - 提高宏执行时间的方法
- javascript - 使用 $sum 和 $cond 获取 $sum 的值,而不是 mongo 中的实例总和
- vue.js - Vuetify 离线文档
- gcc - 将静态库文件添加到 makefile
- tfs - TFS2017 Sonarqube 代码覆盖率未显示
- php - vTigerCRM 7 - 除非手动触发,否则调度程序不会运行任何 cron 作业
- angular - Angular 6,如何在子组件上测试父发射器?
- git - Git 将我的工作从某个提交转移到一个单独的分支,而无需从当前父级进行更改
- excel - Excel - 仅在看到特定数字后才对列中的数字求和
- r - ggplot2 重命名 x 轴刻度会更改图表外观