OCR: Wie zur Verbesserung der Genauigkeit - vorhandene Bibliotheken zum Entfernen von Nicht-Text ‚Möbel‘, Formen, usw. OCR nicht zu verwirren?

StackOverflow https://stackoverflow.com/questions/2448106

Frage

Ich mag Rechtecke entfernen usw., dass enclose Text in einem Screenshot Bild, so dass ich die optische Zeichenerkennung durchführen kann genauen Text aus dem Screenshot zu erhalten.

Hintergrund:

tue ich dies mit anderen Anwendungen für die Verwendung von Daten aus einer Legacy-Anwendung zu extrahieren. Dies ist der einzige Weg, um diese Daten zu erhalten, die damit verbundene Dateien in einem geschlossenen, proprietären Binärformat sind.

Ich werde AutoItScript werden mit der Anwendung auf Antriebsdaten in seiner UI zu zeigen, dann wird Screenshot ich dies und führen diese zu tesseract.

habe ich schon habe einig Erfolg in der UI-Automatisierung, und hat zu Verwendung Tesserakts der Lage gewesen, aus der Bitmap-ASCII-Text zu erhalten.

Es gibt mehr AutoItScripr Foren Artikel seine Verwendung mit tesseract / OCR diskutieren, aber nicht speziell für meine Frage. http://www.autoitscript.com/forum/index.php? s = 6c32c3ece12756e635a619cdf175eff9 & showforum = 2

Was ich brauche, tun

Es gibt dünne, 1-Pixel breite Rechtecke, die eng umschließen einen Text, wenn zu tesseract zugeführt, es sieht sie, wie ich zum Beispiel für eine verticle Linie des Rechtecks.

Alle Gedanken darüber, wie man die Rechtecke zu entfernen, oder Best Practices?

Ich frage, ob es eine allgemeine Befehlszeile basierte Toolset zu überschreiben Rechtecken, beispielsweise Dateien in .png. Ich könnte dann die .png durch diese passieren, passieren sie dann zu tesseract.

Details auf der Tesserakts Release / setup ich verwendet habe, sind wie folgt:

Gehen Sie hier: http://code.google.com/p/ tesseract-ocr / downloads / Liste - Für den Grund Englisch generischen Zeichensatz zu erhalten Tesseract und läuft und Ihren Bitmap- Text in ASCII-Text, Verwendung tesseract-2.00.eng.tar.gz (aktuelle Version zum Zeitpunkt des Schreibens zu erkennen ist: „Englisch Sprachdaten für Tesseract (2,00 und up) Jun 2007 989 KB 84845" )

Verwandte Fragen, die ich bereits auf Stack-Überlauf ausgesehen haben

In dieser ist meine Frage nicht vollständig beantwortet oder eine kommerzielle Lösung verkauft wird. Ich will nicht eine kommerzielle Lösung in diesem Stadium berücksichtigen.

War es hilfreich?

Lösung

Zur Zeit wahrscheinlich nicht für diese eine freie aus dem Regal Lösung sein, aber Ihre eigene Codierung sollte nicht allzu schwer sein, da es wahrscheinlich ist sicher anzunehmen, dass ein Rechteck wird nie ein gültiges Zeichen in der Schriftart des Alphabets sein und kann daher werden sicher entfernt. Es hilft auch, dass alle Ihre Rechteck Grenzen sind genau ein Pixel breit.

So für eine zusammenhängende horizontale Linie suchen, die zu einer anderen, parallelen Linie von der gleichen Länge mit genau zwei vertikalen Linien verbunden ist. Wiederholen Sie die Suche, bis Sie alle Rechtecke in dem Bild dann machen sie alle transparent mit Graphics.DrawRectangle und

scroll top