我想创建一个类似CamCard的应用,该应用将以ocr形式工作并将文本填充到特定字段中, 我已经将Firebase MLKit用于图像中的文本识别器,但是问题是它现在为我提供了文本列表,如何获取与哪个字段相关的文本 我的基本实现如下
FirebaseApp.initializeApp(this);
FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bm);
FirebaseVisionTextRecognizer textRecognizer = FirebaseVision.getInstance()
.getOnDeviceTextRecognizer();
textRecognizer.processImage(image)
.addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
@Override
public void onSuccess(FirebaseVisionText result) {
// Task completed successfully
// ...
String resultText = result.getText();
for (FirebaseVisionText.TextBlock block : result.getTextBlocks()) {
String blockText = block.getText();
Float blockConfidence = block.getConfidence();
List<RecognizedLanguage> blockLanguages = block.getRecognizedLanguages();
Point[] blockCornerPoints = block.getCornerPoints();
Rect blockFrame = block.getBoundingBox();
for (FirebaseVisionText.Line line : block.getLines()) {
String lineText = line.getText();
Float lineConfidence = line.getConfidence();
List<RecognizedLanguage> lineLanguages = line.getRecognizedLanguages();
Point[] lineCornerPoints = line.getCornerPoints();
Rect lineFrame = line.getBoundingBox();
for (FirebaseVisionText.Element element : line.getElements()) {
String elementText = element.getText();
Float elementConfidence = element.getConfidence();
List<RecognizedLanguage> elementLanguages = element.getRecognizedLanguages();
Point[] elementCornerPoints = element.getCornerPoints();
Rect elementFrame = element.getBoundingBox();
}
}
}
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Task failed with an exception
// ...
}
});
从上面的侦听器中,我将获得所有文本的列表,请演示如何将文本设置为适当的字段
答案 0 :(得分:1)
GridAdapter adapter = new GridAdapter(getApplicationContext(), contactList);
示例[完整说明] [步骤6]
https://codelabs.developers.google.com/codelabs/mlkit-android/#5