Laden...

OCR Erkennung mit tessnet2: Zeilenumbrüche werden nicht wie gewünscht erkannt

Erstellt von AlexK vor 9 Jahren Letzter Beitrag vor 9 Jahren 3.177 Views
A
AlexK Themenstarter:in
46 Beiträge seit 2008
vor 9 Jahren
OCR Erkennung mit tessnet2: Zeilenumbrüche werden nicht wie gewünscht erkannt

Hallo Experten,

hat jemand von euch Erfahrungen mit OCR Erkennung mit tessnet2?
Ich hab das ganze nach diesem kleinen Tutorial gemacht:
www.lexa-it.de: Code-Tipp: OCR-Funktionalität für Ihre C#-Anwendung


Bitmap bitmap2Scan = (Bitmap) pictureBox1.Image;
Tesseract ocr = new Tesseract();
ocr.Clear();
ocr.Init(@"c:\ocrTest\tessdata", "eng",false);
List<tessnet2.Word> ocrResult = ocr.DoOCR(bitmap2Scan, Rect);
int lc = Tesseract.LineCount(ocrResult);
for (int i = 0; i < lc; i++)
{
    txtResult.AppendText("Line " + i.ToString() + ": " + Tesseract.GetLineText(ocrResult, i) + Environment.NewLine);
}

Das funktioniert auch soweit ganz gut, nur erkennt die Engine irgendwie die Zeilenumbrüche nicht richtig.
Ich hab z.B. folgende Zahlen untereinander auf dem Image

5079884
5080168
5080536
5080401
5080248

Die OCR-Erkennung erkennt es so:
507988450801685080 536
5080401
5080248

Bei den letzten beiden wurde wohl ein Zeilenumbruch erkannt, bei den anderen leider nicht.
Habt Ihr eine Idee, an was das liegen könnte?

Danke für eure Tipps,
Alex

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo AlexK,

keine Ahnung, wie verbreitet diese OCR-Bibliothek ist und ob sich damit hier jemand auskennt.

So wie ich das in dem Beispielcode auf der verlinkten Seite sehe, kommt man auch an die erkannten Worte. Dann kann dir der Umbruch der Zeilen egal sein.

Ansonsten kann ich mir vorstellen, dass es eine Einstellung gibt, ob für den Text Fließtext oder Text mit festen Umbrüchen angenommen werden soll. Schau mal in die Doku bzw. schau dir an, welche Member, insbesondere Properties, Methoden und Parameter der Methoden es in den Klassen gibt.

herbivore

A
AlexK Themenstarter:in
46 Beiträge seit 2008
vor 9 Jahren

Hallo herbivore!

Danke für deine schnelle Anwort.
Du hast Recht, ich kann mir auch die "Words" ausgeben lassen. Dann kommt dieses Ergebniss raus:

5079884
50801685080
536
5080401
5080248

Ist zwar ne Spur besser, aber immer noch nicht richtig...

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo AlexK,

treten hinter den Zahlen Bildstörungen auf, die von der Software als Bindestrich (Wordtrennung) interpretiert werden können?

Ansonsten bleibt mein Vorschlag, man nach den Einstellmöglichkeiten zu schauen.

Wenn du wüsstet, dass alle Zahlen immer sieben Ziffern lang sind, könntest du solche Umbruchfehler auch nachträglich korrigieren. Zumindest, wenn sie relativ selten sind, nicht mehrere Zahlen hintereinander betreffen und die Software keine Ziffern ganz verschluckt.

herbivore

A
AlexK Themenstarter:in
46 Beiträge seit 2008
vor 9 Jahren

Hallo herbivore,

Nein, die Zahlen stehen frei. Daran kann es nicht liegen.

Irgendwelche Muster kann ich leider nicht verwenden, da die zu scannenden Infos variabel sind...

Trotzdem Danke für deine Mühe!
Alex