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?