优化异常

This commit is contained in:
2026-01-14 09:51:51 +08:00
parent 8de09cf8c1
commit 412a176d14
3 changed files with 8 additions and 6 deletions
@@ -293,7 +293,7 @@ class FoodCollectionActivity : ComponentActivity() {
) )
initBox() initBox()
val imageVector = try { val imageVector = try {
FoodModule.bitmap2FloatArray(cropBitmap) FoodModule.bitmap2FloatArray(cropBitmap, false)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
toast("操作失败") toast("操作失败")
@@ -453,7 +453,7 @@ class GoodsStoreDialog(
} }
Thread { Thread {
try { try {
val imageVector = FoodModule.bitmap2FloatArray(bitmap) val imageVector = FoodModule.bitmap2FloatArray(bitmap, true)
if (imageVector != null) { if (imageVector != null) {
ObjectBox.boxStore.runInTx { ObjectBox.boxStore.runInTx {
box?.put(Food(name = goods.goodsName + goods.goodsCode, foodIdx = 0, foodVector = imageVector)) box?.put(Food(name = goods.goodsName + goods.goodsCode, foodIdx = 0, foodVector = imageVector))
@@ -61,11 +61,13 @@ object FoodModule {
// } // }
// } // }
fun bitmap2FloatArray(originBitmap: Bitmap): FloatArray? { fun bitmap2FloatArray(originBitmap: Bitmap, isRecycle: Boolean): FloatArray? {
var rgb565Bitmap: Bitmap?=null var rgb565Bitmap: Bitmap?=null
try { try {
val scaledBitmap = originBitmap.scale(MODEL_INPUT_WIDTH, MODEL_INPUT_HEIGHT) val scaledBitmap = originBitmap.scale(MODEL_INPUT_WIDTH, MODEL_INPUT_HEIGHT)
if (isRecycle) {
originBitmap.recycle() originBitmap.recycle()
}
rgb565Bitmap = scaledBitmap.copy(Bitmap.Config.RGB_565, false) rgb565Bitmap = scaledBitmap.copy(Bitmap.Config.RGB_565, false)
scaledBitmap.recycle() scaledBitmap.recycle()
val inputTensor = TensorImageUtils.bitmapToFloat32Tensor( val inputTensor = TensorImageUtils.bitmapToFloat32Tensor(
@@ -121,11 +123,11 @@ object FoodModule {
nameScoreList.add(IdNameScore(id = it.id, name = box.get(it.id).name?:"", score = it.score)) nameScoreList.add(IdNameScore(id = it.id, name = box.get(it.id).name?:"", score = it.score))
} }
Timber.tag("FoodModule").d("queryFood数据:${nameScoreList.toJsonString()}") Timber.tag("FoodModule").d("queryFood数据:${nameScoreList.toJsonString()}")
query.close()
return nameScoreList return nameScoreList
} }
fun getFoodScoreList(bitmap: Bitmap, queryCount: Int = 15): List<IdNameScore> { fun getFoodScoreList(bitmap: Bitmap, queryCount: Int = 15): List<IdNameScore> {
val floatArray = bitmap2FloatArray(bitmap) val floatArray = bitmap2FloatArray(bitmap, false)
if (floatArray == null) return emptyList() if (floatArray == null) return emptyList()
val nameScoreList = queryFoodNameScore(floatArray, queryCount) val nameScoreList = queryFoodNameScore(floatArray, queryCount)
if (nameScoreList.isEmpty()) { if (nameScoreList.isEmpty()) {