使用Firebase视觉在识别的文本上绘制矩形

时间:2018-07-10 03:25:00

标签: android firebase kotlin firebase-mlkit

我正在使用firebase ml视觉,从FirebaseVisionText.Block.boundingBox中可以得到文本的矩形边界-据我了解-我不知道如何在包含我的图像的ImageView上绘制这些矩形,我尝试了不同的方法,但是它们都做了其他事情,因此我创建了一个名为 Custom.kt 的自定义视图:

class Custom : View {
   var mRect : ArrayList<Rect> = ArrayList()

   constructor(context: Context) : super(context) 

   private val myPaint: Paint = Paint()

   override fun onDraw(canvas: Canvas?) {
      super.onDraw(canvas)
      myPaint.style = Paint.Style.STROKE
      myPaint.color = Color.BLACK
      myPaint.strokeWidth = 10f
      if(mRect.size == 0) return
      for(rec in mRect){
        canvas!!.drawRect(rec,myPaint)
      }
   }
   fun setRect(rect : Rect){
      mRect.add(rect)
      postInvalidate()
   }
}

这是我的xml文件 activity_ocrdemo.xml

    <?xml version="1.0" encoding="utf-8"?>

    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/lay"
    tools:context=".OCRDemoActivity">

    <ImageView
        android:id="@+id/img"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/img" />
    <com.enkaaz.Custom
        android:id="@+id/customView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.constraint.ConstraintLayout>

这是我如何通过 OCRDemoActivity.kt 中的参数调用的方法:

detector.detectInImage(image).addOnSuccessListener {
    for (block in it.blocks) {

        customView.setRect(block.boundingBox!!)

    }
}

但是结果就是这个

矩形显示在设备的右上角: The rectangles appear at the right corner of the device

0 个答案:

没有答案