有没有办法使用谷歌的文本识别 API检测全尺寸的水平线(最大宽度)而不是图像中的文本块?比如说,如果我想从这样的收据图像中检索应付总额:
...因为到目前为止,API 会以任意顺序检测块中的文本,如下所示:
...不,TextBlockgetComponents()
仅检索每个 TextBlock 中的行,因为 TextBlock 位于此处的文档中提到的文本层次结构的顶部(TextBlock 包含行) 。如果这个 API 可以从 Lines 而不是 TextBlocks 开始用于图像位图的框架......
我什至尝试使用硬编码坐标调整文本块的边界框(矩形)的大小,以希望检测到整行文本“Chicken Bowl ... 7.15”,但无济于事,如下所示:
val textRecognizer = TextRecognizer.Builder(this).build()
if (textRecognizer.isOperational) {
val imageFrame = Frame.Builder()
.setBitmap(imageBitmap)
.build()
val textBlocks = textRecognizer.detect(imageFrame)
for (i in 0 until textBlocks.size()) {
val textBlock = textBlocks.get(textBlocks.keyAt(i))
textBlock.boundingBox.set(97, 1244, 1235, 1292)
val textValue = textBlock.value
Log.d(LOG_TAG, "textValue: " + textValue)
}
}