How to extract text from image Android app

前端 未结 4 1847
眼角桃花
眼角桃花 2021-02-01 22:52

I am working on a feature for my Android app. I would like to read text from a picture then save that text in a database. Is using OCR the best way? Is there another way? Google

相关标签:
4条回答
  • 2021-02-01 23:29

    From this Simple example of OCRReader in Android tutorial you can read text from image and also you can scan for text using camera, using very simple code.

    This library is developed using Mobile Vision Text API

    For scan text from camera

    OCRCapture.Builder(this)
            .setUseFlash(true)
            .setAutoFocus(true)
            .buildWithRequestCode(CAMERA_SCAN_TEXT);
    

    For extract text from image

    String text = OCRCapture.Builder(this).getTextFromUri(pickedImage);
    //You can also use getTextFromBitmap(Bitmap bitmap) or getTextFromImage(String imagePath) buplic APIs from OCRLibrary library.
    
    0 讨论(0)
  • 2021-02-01 23:34

    you can use google vision library for convert image to text, it will give better output from image. Add below library in build gradle:

       compile 'com.google.android.gms:play-services-vision:10.0.0+'
    
        TextRecognizer textRecognizer = new TextRecognizer.Builder(getApplicationContext()).build();
    
    Frame imageFrame = new Frame.Builder()
    
            .setBitmap(bitmap)                 // your image bitmap
            .build();
    
    String imageText = "";
    
    
    SparseArray<TextBlock> textBlocks = textRecognizer.detect(imageFrame);
    
    for (int i = 0; i < textBlocks.size(); i++) {
        TextBlock textBlock = textBlocks.get(textBlocks.keyAt(i));
        imageText = textBlock.getValue();                   // return string
    }
    
    0 讨论(0)
  • 2021-02-01 23:41

    Text from an image can be extracted using Firebase machine learning (ML) kit. There are two versions of the text recognition API, on-device API (free) and on-cloud API.

    To use the API, first create BitMap of the image, which should be upright. Then create FirebaseVisionImage object passing the bitmap object.

    FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);
    

    Then create FirebaseVisionTextRecognizer object.

    FirebaseVisionTextRecognizer textRecognizer = FirebaseVision.getInstance()
            .getCloudTextRecognizer();
    

    Then pass the FirebaseVisionImage object to processImage() method, add listeners to the resulting task and capture the extracted text in success callback method.

    textRecognizer.processImage(image)
                    .addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
                        @Override
                        public void onSuccess(FirebaseVisionText firebaseVisionText) {
                           //process success
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                         @Override
                         public void onFailure(@NonNull Exception e) {
                           //process failure
                         }
                     });
    

    For complete example which shows how to use Firebase ML text recognizer, see https://www.zoftino.com/extracting-text-from-images-android

    0 讨论(0)
  • 2021-02-01 23:54

    There is a different option. You can upload your image to the server, OCR it from the server, then get the result.

    0 讨论(0)
提交回复
热议问题