2012-08-12 4 views
6

Ich versuche, ein paar Großbuchstaben aus einem Screenshot zu erkennen. Ich wandeln es in schwarz und weiß mit PIL und dann das Codebeispiel aus der PyTesser Seite mit, ich laufe tesser.exe auf dem Bild:Niedrige Erfolgsrate mit Pytesser? Ist das ein Problem des Lärms oder gibt es noch etwas anderes zu tun?

from pytesser import * 
image = Image.open('fnord.tif') 
print image_to_string(image)  

Ich verwende dieses Bild: http://i.imgur.com/so419.png

Aber es erkennt es nicht als ein E, oder wirklich irgendetwas in dieser Angelegenheit. I denke,, dass es eine saubere genug Capture ist? Der Lärm an der Spitze wirft es nicht ab, oder?

Gibt es etwas, das mir fehlt?

+2

Ich habe die Befehlszeile util ausgeführt, die 'Tesseract Open Source OCR Engine v3.02 mit Leptonica' zeigt - ohne eine' psm' Option - ich bekomme eine leere Datei. Mit '-psm 10', das angeblich "das Bild als ein einzelnes Zeichen behandelt" - bekomme ich '%' gefolgt von zwei Zeilenumbrüchen ... –

+0

[Begrenzen der Zeichen, nach denen tesseract sucht] (http://stackoverflow.com/questions/2363490/limit-character-tesseract-is-looking-for) hat mir in der Vergangenheit geholfen. – user500198

+0

Wenn die Großbuchstaben, die Sie zu erkennen versuchen, eine eindeutige Schriftart haben, die wie in der Frage gezeigt klar ist, dann gibt es keinen Grund, sich auf tesseract zu verlassen. Einige einfache topologische Merkmale zusammen mit Skelett-Informationen können das direkt lösen. – mmgp

Antwort

1

Wenn Sie besorgt sind, ob das Rauschen ein Problem ist, dann öffnen Sie das Bild manuell in MSPaint oder etwas ähnliches, entfernen Sie das Rauschen und führen Sie dann das neue Bild durch die OCR. Dies ist der beste Weg zu lernen, wie die OCR-Engine funktioniert und was sie verwirrt und was nicht. Jede OCR-Engine funktioniert anders.

In diesem Fall könnte es sein, dass die kleinen Bits des Rauschens den Character-Zoning-Prozess ebenfalls verwirren. Sie sollten die Bounding-Box-Werte überprüfen, die von der OCR-Engine zurückgegeben werden, um zu sehen, ob die OCR-Engine sogar nach dem richtigen Ort für Ihr Wort oder Zeichen sucht.

Einige OCR-Engines bieten Optionen zum Entfernen von Bildrauschen während des OCR-Prozesses. Dies wird oft als Entfernung von Sprüchen oder Rauschen bezeichnet. Es wäre möglich, Rauschen mit Leptonica (http://www.leptonica.org) zu entfernen, das jetzt Teil der neuesten Tesseract-Bilder ist.

Bildschirmschriften stellen eine große Herausforderung für OCR-Engines dar, da die DPI oft sehr niedrig ist. Im Falle Ihres 'E' sollten mehr als genug Pixel erkannt werden. Das schwere Hubgewicht könnte den Motor verwirren.

Auch die kommerziellen Motoren werden in der Regel genauer sein als Tesseract, aber auch mit teuren Lizenzgebühren.