Autor Beitrag
Flop
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Di 21.12.10 15:35 
Ich wollte ein kleines OCR Programm schreiben das auf der Tesseract lib. besteht.
Ich mache ein Screen Shot von einem bestimmten Berreich. Den speicher ich als .tiff Bilddatei für Tesseract ab.
Soweit sogut.

SchreenShot: (Kein Problem funktioniert super)
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
 private Bitmap CreateScreenshot(int left, int top, int width, int height)
        {
            try
            {
                Bitmap delete = new Bitmap("c:\\testpng.png");
                delete.Dispose();
                GC.Collect();
                File.Delete("c:\\testpng.png");
            }
            catch
            {
            }
            Bitmap bmp = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(bmp);
            g.CopyFromScreen(left, top, 00new Size(width, height));
            g.Dispose();
            bmp.Save("c:\\testpng.png");
            System.Drawing.Bitmap.FromFile("c:\\testpng.png").Save("c:\\test.tif", System.Drawing.Imaging.ImageFormat.Tiff);
            return bmp;
        }



Scan: (Total für den *****)
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Bitmap scan = new Bitmap("eurotext.tif");
tessnet2.Tesseract ocr = new tessnet2.Tesseract();
ocr.SetVariable("tessedit_char_whitelist""0123456789"); // If digit only
ocr.Init(@"c:\temp""fra"false); // To use correct tessdata
List<tessnet2.Word> result = ocr.DoOCR(scan, Rectangle.Empty);
foreach (tessnet2.Word word in result)
{
    Console.WriteLine("{0} : {1}", word.Confidence, word.Text);
}


Die ausgabe bei Console.Writline erstmal ignorieren ;)
Bekomme ständig fehlermeldungen mit fehlenden quellen.
Die Tesseract.dll hab ich hinzugefügt.
Aber es fehlen mir noch angeblich viele .h Dateien.
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Mi 22.12.10 09:53 
Hallo,

bei der dll, die Du eingebunden hast und im Code benutzt, redest Du von Tessnet2, dem C#-Wrapper für tesseract, oder? Hatte mich auch mal daran probiert, aber bei mir ist das Programm dann immer deim Aufruf von "Init" abgestürzt, ohne jegliche Fehlermeldung. Wo bekommst Du denn die Fehlermeldungen? Die andere Sache ist auch noch, dass dieser Wrapper die Version 2 von tesseract nutzt, und nun schon die Version 3.0 draussen ist.
Vielleicht hilft es Dir ja, wenn Du die Tesseract.exe per Process startest, und dann den Text, der dort ausgespuckt wird weiter verarbeitest. Nur so ne Idee. Es gibt dazu schon einen Post, suche einfach mal nach tesseract.
LG, Marko
Flop Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 22.12.10 18:43 
Es ist ja indirekt eine Fehlermeldung.
Bei ocr.SetVariable("tessedit_char_whitelist""0123456789"); // If digit only
sagt er mit das quellen fehlen wie z.B. varable.h . Ich finde diese aber niergendswo. Nichtmal bei google.

Also um mal zu sagen, wieso ich das eigentlich brauche:

Auf Facebook gibt es dieses noch recht junge spiel "Herausforderung der Städte".
Ich wollte dafür ein Bot schreiben der die Städte Namen ausließt und die jeweiligen koordinaten anklickt.
Das auslesen wollte ich mit OCR machen.
Auf youtube gibt es schon einen sehr sehr guten und schnellen bot. Ohne OCR.
www.youtube.com/watch?v=_6pLHEEA_BU