【发布时间】:2021-12-27 06:53:04
【问题描述】:
我正在使用华为图像分割从图像中去除背景。此代码在 debug build 上运行良好,但在 release build 上无法正常运行。我不明白会是什么情况。
代码:
private fun imageSegmentation(bitmap: Bitmap?) {
if (bitmap == null) {
dialog.dismiss()
Toast.makeText(requireContext(), "Something went wrong. Try again!", Toast.LENGTH_LONG).show()
return
}
val setting =
MLImageSegmentationSetting.Factory()
.setAnalyzerType(MLImageSegmentationSetting.BODY_SEG)
.setExact(true)
.create()
val analyzer = MLAnalyzerFactory.getInstance().getImageSegmentationAnalyzer(setting)
val mlFrame = MLFrame.Creator().setBitmap(bitmap).create()
val task = analyzer?.asyncAnalyseFrame(mlFrame)
task?.addOnSuccessListener { mlImageSegmentationResults ->
if (mlImageSegmentationResults != null) {
removalFlag = true
removalBitmap = mlImageSegmentationResults.foreground
} else
Toast.makeText(context, "No human body is detected!", Toast.LENGTH_LONG).show()
dialog.dismiss()
}?.addOnFailureListener {
Toast.makeText(context, "No human body is detected!", Toast.LENGTH_LONG).show()
dialog.dismiss()
}
}
依赖关系:
implementation 'com.huawei.hms:ml-computer-vision-segmentation:2.2.0.300'
implementation 'com.huawei.hms:ml-computer-vision-image-segmentation-body-model:2.2.0.300'
注意:据我了解,task?.addOnSuccessListener 被调用,但 mlImageSegmentationResults 返回 null。
【问题讨论】:
-
你在发布版本中启用了 Proguard 吗?像这样的东西通常是 Proguard 的“错误”。
-
hi@ahmad bajwa,您能否分享一下您的测试设备模型、堆栈跟踪或任何调试和发布版本的日志,以便我们为您提供适当的帮助?
-
是的,我已经启用了proguard。
-
@shirley,如果 mlImageSegmentationResults 为空,我认为堆栈跟踪不会有帮助。
-
@shirley 感谢您的帮助 - Primož Ivančič 是对的。
标签: android kotlin huawei-mobile-services huawei-ml-kit