2016-10-23 2 views
4

Ich versuche, eine grundlegende OCR Android-App mit Google Mobile Vision API zu schreiben, aber ich habe Schwierigkeiten, die App tatsächlich Text in einem statischen Bild zu erkennen. Ich habe mir das Codelab-Tutorial, die Fragen anderer Leute, nämlich jede einzelne Stackoverflow-Frage mit dem Android-Vision-Tag und die Dokumentation angeschaut, aber ich hatte immer noch kein Glück. Ich weiß, dass jemand anders eine ähnliche Frage gestellt hat, aber die dort gepostete Antwort funktioniert nicht.Mit Google Mobile Vision Text in einem statischen Bild erkennen?

Hier ist ein Auszug aus meinem Code

Bitmap photo = (Bitmap) extras.get("data"); 
     pictureOcrView.setImageBitmap(photo); 
     Context context = getApplicationContext(); 
     TextRecognizer ocrFrame = new TextRecognizer.Builder(context).build(); 
     Frame frame = new Frame.Builder().setBitmap(photo).build(); 
     if (ocrFrame.isOperational()){ 
      Log.e(TAG, "Textrecognizer is operational"); 
     } 
     SparseArray<TextBlock> textBlocks = ocrFrame.detect(frame); 

     for (int i = 0; i < textBlocks.size(); i++) { 
      TextBlock textBlock = textBlocks.get(textBlocks.keyAt(i)); 

      Log.e(TAG, "something is happening"); 
      } 

Ich verstehe nicht, was das Problem ist. Es ist nicht so, als würde ich verstümmelten Text bekommen, ich bekomme überhaupt keinen Text. Wenn ich diese Anwendung mit einem Bild von Text teste, der für das Codelab-Tutorial funktioniert, bekomme ich nichts. Es scheint, als ob das textBlock-Array nicht einmal erstellt wird, aber ich weiß nicht warum. Ich weiß, dass ich den Rahmen erstellt habe, weil ich noch andere Rahmenmethoden wie getHeight erfolgreich ausführen kann, und das isOperational() hat True zurückgegeben.

Irgendwelche Vorschläge, was ich falsch mache?

Antwort

2

Ich hatte gerade das gleiche Problem Bild drehen. Das Problem ist, dass das Bild, das Sie gerade bearbeiten, nicht das ganze Foto ist, sondern nur ein Vorschaubild (erhalten Sie durch den Aufruf von extras.get ("data")). Um auf das vollständige Bild zugreifen zu können, müssen Sie es speichern und dann verwenden. Details dazu finden Sie unter dem folgenden Link: https://developer.android.com/training/camera/photobasics.html

1

In meinem Fall. Wenn ich Bitmap von Kamera oder Galerie erhalte, wurde diese Bitmap-Ausrichtung gedreht. TextRecognizer kann keinen Text erkennen, da Bitmap gedreht wird. Sie müssen Bitmap drehen, um die Ausrichtung zu korrigieren.

Sie können mit this Kommentar, indem Sie

Verwandte Themen