У меня есть объект TessBaseAPI () с возвращенным объектом.Я хочу извлечь слова с помощью их ограничительной рамки, но не могу заставить их работать.
val Text = tesseract.getUTF8Text()
дает мне текст.
val Words = tesseract.getWords.boxRects
дает мне ограничивающие рамки, которые яможет проходить через, но они не совпадают с getUTF8Text ().
Цикл по объекту данных в tesseract.getWords и попытка преобразовать его в строку дает мне неловкость.
val Words = tesseract.getWords
for(i in Words) {
Log.i(TAG, i.data.toString())
}
Iнашел действительно плохой обходной путь, используя .getHOCRText и выполнив регулярное выражение для созданного содержимого, чтобы получить текст и поля.
val result = tesseract.getHOCRText(0)
val BoxPattern = Pattern.compile("(?<=title='bbox ).*?(?=; x_wconf)")
val BoxMatch = BoxPattern.matcher(result)
while(BoxMatch.find()) {
Log.i(TAG, BoxMatch.group().toString())
}
val TextPattern = Pattern.compile("(?<='>).*?(?=<\\/span>)")
val TextMatch = TextPattern.matcher(result)
while(TextMatch.find()) {
Log.i(TAG, TextMatch.group().toString())
}
Итак, как мне правильно извлечь текст и boxRects из tess-two?