Как запустить камеру для самостоятельной съемки в определенной области c? - PullRequest
0 голосов
/ 16 апреля 2020

Моя цель - обнаружить текст на изображении и поместить его в конкретное c текстовое представление. Проблема в том, что позиция обнаруженных слов изменяется в массиве. Я хочу, чтобы камера делала снимок сама по себе, когда она достигает определенной области c, поэтому выходные данные всегда одинаковы, и я могу поместить их в правильные текстовые изображения. Любые идеи?

Что я могу сделать, это сделать фотографию, сохранить ее, распознать текст и поместить весь текст в текстовое представление. Но это очень много, я хочу, чтобы конкретный c текст в указанном c textview.

fun startRecognizing(v: View) {
    if (imageView.drawable != null) {
        editText.setText("")
        v.isEnabled = false
        val bitmap = (imageView.drawable as BitmapDrawable).bitmap
        val image = FirebaseVisionImage.fromBitmap(bitmap)
        val detector = FirebaseVision.getInstance().onDeviceTextRecognizer

        detector.processImage(image)
            .addOnSuccessListener { firebaseVisionText ->
                v.isEnabled = true
                processResultText(firebaseVisionText)
            }
            .addOnFailureListener {
                v.isEnabled = true
                editText.setText("Failed")
            }
    } else {
        Toast.makeText(this, "Select an Image First", Toast.LENGTH_LONG).show()
    }

}


private fun processResultText(resultText: FirebaseVisionText) {
    if (resultText.textBlocks.size == 0) {
        editText.setText("No Text Found")
        return
    }
    for (blocks in resultText.textBlocks) {
        val blockText = blocks.text
        val stringText  = resultText.textBlocks
        stringText[0]
        editText.append(blockText + "\n")
    }
}

stringText просто для меня, чтобы видеть, что внутри каждый раз, когда я ищу вывод распознанного текста .

...