2010-12-29 13 views
3

Ich arbeite an iPhone-Anwendung, die ISBN-Nummern erkennt (ISBN: 978-83-7380-900-0) Ich benutze Tesseract für diese, aber es funktioniert nicht sehr gut. Ich kann andere Anwendungen sehen und dieselbe Engine verwenden, um besser zu arbeiten.Wie Ergebnisse von Tesseract verbessert werden, um Zahlen zu erkennen

um die Zeichen zu begrenzen verwende ich diese Konfig-Zeile: tess-> SetVariable ("tstedit_char_whitelist", "SN:X-"); Also werden alle "I" in "1" und "B" in 8 umgewandelt. Damit mache ich keinen Fehler mit diesen Buchstaben, die mir nicht wichtig sind. Danach verwende ich regulären Ausdruck, um den korrekten Teil des erkannten Textes zu finden.

Ich zerschneide auch das Bild, so tesseract erkennt nur einen Teil des Bildes, wo isbn sichtbar ist (ich habe die Farbe rect auf der Kameraüberlagerung platziert, so muss der Benutzer den Code an der richtigen Stelle platzieren) Ich skaliere auch das Bild auf 1000px Breite (auch andere Größen)

Es funktioniert ganz gut, wenn das Licht ausgezeichnet ist, aber es ist wirklich schwer zu erkennen, wenn die Beleuchtung nicht perfekt ist.

Die letzte Ziffer der Isbn-Nummer ist eine Kontrollsumme.

Was kann ich tun, damit es besser funktioniert? Gibt es eine Möglichkeit zu sagen, dass testerect Text nur in einem bestimmten regulären Ausdruck erkennt? Vielleicht sollte ich zuerst etwas mit Bild machen?

Beispielbilder, die nicht korrekt erkannt werden:
http://img412.imageshack.us/i/img0367si.jpg/
http://img264.imageshack.us/i/img0361d.jpg/

Antwort

2

verwendet ich einige Pre-Verarbeitung und die Ergebnisse sind recht gut im Moment. (normalisierung und auto threshold) ich mache es mit einfachen bildverarbeitung für iphone. Ich mache auch Bilder mit 2x Zoom. Das einzige Problem ist, dass es sehr einfach ist unscharfes Bild zu machen, und dann ist es unmöglich, irgendetwas zu erkennen. Der Prozess der OCR-Erkennung dauert ca. 4s. und es funktioniert auf Bild 300 x 109: 19KB Ich frage mich nur, was kann ich tun es schneller arbeiten, so dass ich in der Lage wäre, mehrere Bilder zu nehmen und alle von ihnen zu verarbeiten.

Verwandte Themen