我正在使用ml套件文本识别创建名片应用程序。我有一个可以正常运行的应用程序,但是发现当上传名片并提取文本时,文本以乱七八糟的形式返回,没有空格。
我需要逐行逐字提取文本。
有没有办法解决这个问题?
答案 0 :(得分:0)
识别操作成功后,将FirebaseVisionText
对象传递给成功侦听器。 FirebaseVisionText对象包含图像中识别的全文和零个或多个TextBlock对象。
每个TextBlock
代表一个矩形文本块,其中包含零个或多个Line对象。每个Line对象包含零个或多个Element对象,这些Element代表单词和类似单词的实体(日期,数字等)。
对于每个TextBlock,Line和Element对象,您可以获得在区域中识别的文本以及该区域的边界坐标。
例如:
val resultText = result.text
for (block in result.textBlocks) {
val blockText = block.text
val blockConfidence = block.confidence
val blockLanguages = block.recognizedLanguages
val blockCornerPoints = block.cornerPoints
val blockFrame = block.boundingBox
for (line in block.lines) {
val lineText = line.text
val lineConfidence = line.confidence
val lineLanguages = line.recognizedLanguages
val lineCornerPoints = line.cornerPoints
val lineFrame = line.boundingBox
for (element in line.elements) {
val elementText = element.text
val elementConfidence = element.confidence
val elementLanguages = element.recognizedLanguages
val elementCornerPoints = element.cornerPoints
val elementFrame = element.boundingBox
}
}
}