0
Ich benutze Tesseract (tess-two) -Bibliothek in meiner Android-Anwendung für Echtzeit-Texterkennung. Mein Code:Tesseracts Ausgabe ist komplett falsch und Kauderwelsch
public void onPreviewFrame(byte[] data, Camera camera) {
try {
Camera.Size previewSize =camera.getParameters().getPreviewSize();
YuvImage yuvimage=new YuvImage(data, ImageFormat.NV21, previewSize.width, previewSize.height, null);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
yuvimage.compressToJpeg(new Rect(0, 0, previewSize.width, previewSize.height), 60, baos);
byte[] jdata = baos.toByteArray();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bmp = BitmapFactory.decodeByteArray(jdata, 0, jdata.length);
TessBaseAPI baseApi = new TessBaseAPI();
baseAPI.init(DATA_PATH, lang);
baseAPI.setImage(bmp);
extractedText = baseAPI.getUTF8Text();
DisplayResult.setText(extractedText);
}
catch(Exception e) {
e.printStackTrace();
}
ich kein Problem in Tesseract Initialisation haben sowie die Einstellung Bild. Aber die Ausgabe ist völlig falsch, schau dir das Bild an. Die Textansicht zeigt die Tesseract-Ausgabe (über der Oberflächenansicht) an.
Wie löse ich dieses Problem?
Willkommen bei Tesseract! ;) Es ist so, um ehrlich zu sein. Sie können versuchen, das Bild zu bearbeiten und die Qualität anzupassen, versuchen, schwarz auf weiß, versuchen Sie jeden PSM-Modus, etc. Wenn ich das Bild zuschneiden, das Sie nur den Text zur Verfügung gestellt, bekomme ich den Text "Made in China" perfekt, aber die gesamtes Bild Tesseract kann einfach nicht verwalten. [Weitere Tipps finden Sie hier] (https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality), aber halten Sie nicht den Atem an, es sei denn, Sie können das Bild zuschneiden. – samiles
Sie müssen das Bild vorverarbeiten, um die ungleichmäßige Beleuchtung zu reduzieren. – rmtheis