0
val paint = Paint()
        paint.color = Color.RED
        paint.strokeWidth = 3f
        paint.style = Paint.Style.STROKE
        objectDetector.processImage(getVisionImageFromFrame(frame))
            .addOnSuccessListener {
                var result = ""
                it.forEach { item ->
                    val id = item.trackingId
                    val bounds = item.boundingBox
                    val category = item.classificationCategory
                    result +=  category.toString() //TODO : Get the knowledge graph result for this entity
                    Log.e("TAG",category.toString())
                }
                callback(result)
            }
            .addOnFailureListener {
                callback("Unable to detect an object")
            }
            .addOnCompleteListener {

            }

此外,当检测到对象时,会显示一个数字而不是对象的名称。例如:检测笔时,显示的是 010 而不是名称“笔”。我也不知道如何在检测到的图像周围绘制边界框。请注意。

4

1 回答 1

1

您使用 google mlkit 进行对象检测,对吧?!在 kotlin 中有一个来自 google 的 codelab,他们在其中解释了整个实现过程以及如何绘制边界框。

代码实验室

010 的问题是你读出了类别的索引号。您必须将其与类别名称匹配,但这也在 codelab 代码中。注意, label 和 category是有区别的。

于 2020-07-24T08:42:14.287 回答