我正在使用華為影像分割從影像中去除背景。這段代碼在除錯版本上作業得很好,但在發布版本上不起作用。我不明白會是什么情況。
代碼:
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。
uj5u.com熱心網友回復:
當您啟用了 ProGuard 但未正確配置時,通常會發生這樣的事情。確保向proguard-rules.pro檔案添加適當的規則以防止它混淆相關類。
有關這方面的資訊通常由庫開發人員提供。經過快速搜索,我想出了這個例子。來源似乎記錄得足夠好,因此找到正確的設定應該不是問題。
請記住,您可能需要為多個庫添加規則。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/395320.html
標籤:安卓 科特林 huawei-mobile-services huawei-ml-kit
上一篇:Kotlin在運行時列出所有活動
