Skip to content

Instantly share code, notes, and snippets.

@ingenious3
Created December 9, 2018 16:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ingenious3/bc2529e585c701d4ddbef6274498575e to your computer and use it in GitHub Desktop.
Save ingenious3/bc2529e585c701d4ddbef6274498575e to your computer and use it in GitHub Desktop.
on device text-recognition (MLKit-TextRecognition repository)
private void runTextRecognition() {
FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(((GlideBitmapDrawable)imageView.getDrawable()).getBitmap());
FirebaseVisionTextRecognizer detector = FirebaseVision.getInstance()
.getOnDeviceTextRecognizer();
detector.processImage(image)
.addOnSuccessListener(
new OnSuccessListener<FirebaseVisionText>() {
@Override
public void onSuccess(FirebaseVisionText texts) {
processTextRecognitionResult(texts);
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
e.printStackTrace();
}
});
}
private void processTextRecognitionResult(FirebaseVisionText texts) {
List<FirebaseVisionText.TextBlock> blocks = texts.getTextBlocks();
if (blocks.size() == 0) {
showToast("No text found");
return;
}
mGraphicOverlay.clear();
imageView.setImageDrawable(getResources().getDrawable(R.drawable.no_image));
for (int i = 0; i < blocks.size(); i++) {
List<FirebaseVisionText.Line> lines = blocks.get(i).getLines();
for (int j = 0; j < lines.size(); j++) {
List<FirebaseVisionText.Element> elements = lines.get(j).getElements();
for (int k = 0; k < elements.size(); k++) {
Graphic textGraphic = new TextGraphic(mGraphicOverlay, elements.get(k));
mGraphicOverlay.add(textGraphic);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment