private HashMap<Element, String> mapPosToElement = new HashMap<>();
private ArrayList<Element> points = new ArrayList<>();
.addOnSuccessListener(new OnSuccessListener<Text>() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onSuccess(Text visionText) {
// Task completed successfully
// [START_EXCLUDE]
// [START get_text]
ocrResult.clear();
mapPosToElement.clear();
mapRectToElement.clear();
ocrResultElements.clear();
points.clear();
for (Text.TextBlock block : visionText.getTextBlocks()) {
Rect boundingBox = block.getBoundingBox();
Point[] cornerPoints = block.getCornerPoints();
String text = block.getText();
ocrResult.add(block.getText());
Log.d("OCR-BLOCK", "Text Block " + text);
Log.d(LOG_TAG, "boundingBox: " + block.getCornerPoints());
Log.d("OCR-BLOCK", "CornerPoints: " + block.getBoundingBox().toString());
for (Text.Line line: block.getLines()) {
Point[] lineCornerPoints = line.getCornerPoints();
Rect lineFrame = line.getBoundingBox();
Log.d("OCR-LINES", "Text Lines " + line.getText());
//Log.d(LOG_TAG, "LineCornerPoints: " + line.getCornerPoints());
Log.d("OCR-LINES", "LineFrame: " + line.getBoundingBox().toString());
for (Text.Element element: line.getElements()) {
Log.d("OCR-ELEMENT", "Text Element " + element.getText());
Point[] elementCornerPoints = element.getCornerPoints();
Rect elementFrame = element.getBoundingBox();
//Element pointElement = new Element(Math.round(element.getBoundingBox().exactCenterX()), Math.round(element.getBoundingBox().exactCenterY()));
int x = elementCornerPoints[0].x;
int y = elementCornerPoints[0].y;
Element pointElement = new Element(x, y);
Log.d("OCR-ELEMENT", "X: " + x + " Y: " + y);
ocrResultElements.add(element.getText());
mapPosToElement.put(pointElement, element.getText());
points.add(pointElement);
Log.d("OCR-ELEMENT", "X-Center: " + pointElement.getX());
Log.d("OCR-ELEMENT", "Y-Center: " + pointElement.getY());
}
}
}
mProgressDialog.dismiss();
sort(points);
//showResults();
showResultsInDialog(ocrResult, resultUri);
// [END get_text]
// [END_EXCLUDE]
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d(LOG_TAG, "failure" + e.getMessage());
// Task failed with an exception
// ...
}
});
// [END run_detector]
Log.d(LOG_TAG, "End run_detector");