2016-12-20 5 views
0

Hier ist mein Beispielcode, wo ich Details erhalten möchten ...Wie Name, Telefonnummer und E-Mail-Adresse aus Vision OCR Ergebnis Text in Android extrahieren?

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == PHOTO_REQUEST && resultCode == RESULT_OK) { 
     launchMediaScanIntent(); 
     try { 
      Bitmap bitmap = decodeBitmapUri(this, imageUri); 
      if (detector.isOperational() && bitmap != null) { 
       Frame frame = new Frame.Builder().setBitmap(bitmap).build(); 
       SparseArray<TextBlock> textBlocks = detector.detect(frame); 
       String blocks = ""; 
       String lines = ""; 
       String words = ""; 
       for (int index = 0; index < textBlocks.size(); index++) { 
        //extract scanned text blocks here 
        TextBlock tBlock = textBlocks.valueAt(index); 
        blocks = blocks + tBlock.getValue() + "\n" + "\n"; 
        for (Text line : tBlock.getComponents()) { 
         //extract scanned text lines here 
         lines = lines + line.getValue() + "\n"; 

         for (Text element : line.getComponents()) { 
          //extract scanned text words here 
          words = words + element.getValue() + ", "; 
         } 
        } 
       } 


       if (textBlocks.size() == 0) { 
        scanResults.setText("Scan Failed: Found nothing to scan"); 
       } else { 
        scanResults.setText(scanResults.getText() + "Blocks: " + "\n"); 
        scanResults.setText(scanResults.getText() + blocks + "\n"); 
        scanResults.setText(scanResults.getText() + "---------" + "\n"); 
        scanResults.setText(scanResults.getText() + "Lines: " + "\n"); 
        scanResults.setText(scanResults.getText() + lines + "\n"); 
        scanResults.setText(scanResults.getText() + "---------" + "\n"); 
        scanResults.setText(scanResults.getText() + "Words: " + "\n"); 
        scanResults.setText(scanResults.getText() + words + "\n"); 
        scanResults.setText(scanResults.getText() + "---------" + "\n"); 
       } 
      } else { 
       scanResults.setText("Could not set up the detector!"); 
      } 
     } catch (Exception e) { 
      Toast.makeText(this, "Failed to load Image", Toast.LENGTH_SHORT).show(); 
      Log.e(LOG_TAG, e.toString()); 
     } 
    } 
} 

Antwort

1

Sie haben schöne Bibliotheken Link (E-Mails, Webseiten, etc.) wie org.nibor.autolink bezüglich Zahlen analysieren Sie einen Blick haben zur Libphonummer. Es wird von Google vorgeschlagen und von Android verwendet. Wenn Sie das Land angeben, kann es für Sie jedes Format der Nummer analysieren.

In Bezug auf Namen ist es schwierig. Wenn Sie Ihre App nur für ein Land verwenden, können Sie eine Datenbank mit den Namen erstellen (in Frankreich haben wir eine Datei in opendata von einem öffentlichen Dienst vorgeschlagen), aber es wird nicht abgeschlossen sein ...

+1

Vielen Dank mein Herr, werde in das schauen ... –

Verwandte Themen