OCR, Zeichenerkennung, Bild scannen, auslesen

    • Offizieller Beitrag

    Hi!

    Im Anhang mal die ersten Schritte einer OCR (Optical Charcter Recognition, siehe http://de.wikipedia.org/wiki/Texterkennung). Sie ist in C# umgesetzt (benötigt daher das .Net-Framework [in Version 2, wenn ich mich nicht täusche]). Dafür ist es eine Exe-Datei und nur 20 KB groß bisher. Es lässt sich über Kommandozeilenparameter steuern, aber das ist alles noch im Aufbau begriffen.

    Mein Ansatz ist nicht der von klassischer OCR wie bei FineReader & Co. Es soll (und kann) nicht darum gehen, eingescannte oder gar handgeschriebene Sachen zu erkennen, sondern Schriften auf dem Computerbildschirm. Das hat den Vorteil, dass ich das Aussehen der Schrift als bekannt oder reproduzierbar voraussetzen kann und die OCR auf die Schrift trainieren kann (aber eben auch muss).

    Aufgrund dessen fällt das Auslesen von Captchas hiermit definitiv und komplett weg.

    Zum Algorithmus:

    Es werden Summen Anzahl der Pixel der gesuchten Farbe pro Spalte gebildet und diese dann mit den gespeicherten "Höhenprofilen" der Buchstaben verglichen (und zwar von groß nach klein). Dabei kann es zu Fehlern kommen, wenn Buchstaben gleiche Pixelanzahlen pro Spalte, aber eine verschiedene Verteilung innerhalb der Spalte haben. Ist mir schon untergekommen, sollte aber recht selten sein.

    Man kann hiermit natürlich nicht nur Buchstaben und Zahlen scannen, sondern auch beliebige Formen, die sie wie oben beschrieben sinnvoll klassifizieren lassen.

    Wie gesagt, es ist noch einiges zu tun (Editor für Font-Files, Einlesen direkt vom Desktop, Export in Zwischenablage, Datei, ..., Dokumentation, Geschwindigkeitsoptimierung), aber ich poste trotzdem mal eine erste Version.

    Im zip-Archiv liegt ein Beispiel-Bild und eine Beispiel-"Schrift" bei - einfach die Start.au3 ausführen zum Testen :) .

    peethebee

  • hi...

    sieht net aus... wenn ich OhSeeAre direkt starte kommt ein Fehler...

    Ich versteh nicht ganz wie font.txt aufgebaut ist... kannst das kurz erklären? :)

    aber sonnst sehr net. Geht das eigendlich (natürlich 200mal langsamer) auch in autoit?

    mfg

    derda

    • Offizieller Beitrag

    Hi!

    Vom Bildschirm lesen geht ja in AutoIt mit PixelGetColor, von daher ist der Algorithmus auch umsetzbar, aber eben wie du sagst eine ganze Ecke langsamer.

    Mal bisschen was zu der Font.txt aus meinem ICQ-Log mit GtaSpider:

    Zitat

    ich habe hier nen halbfertigen Editor, werde mal schauen, dass ich den irgendwie laufend kriege

    oben steht Farbe (r,g,b), dann shade (kann bei BMP alles 0 sein (3x) und dann die Breite des schmalsten und breitesten Buchstaben in Pixeln

    darunter dann die Definitionen der einzelnen Buchstaben

    jede Zahl ist die Anzahl der Pixel in einer "Spalte" des Buchstaben

    bei T also ungefähr 01-01-01-06-01-01-01

    Ich bastele jetzt noch ein bisschen am Editor, vielleicht kriege ich ihn ja noch zügig fertig.

    Danke für's Testen,
    peethebee

    • Offizieller Beitrag

    Habe auch asuprobirt habe fehler meldung

    :cursing: Was soll diese völlig sinnfreie Äußerung?

    1. Hast du mal auf das Datum des Threads geschaut? (Samstag, 8. Dezember 2007, 15:15)
    Seitdem haben wir einige Versionsschritte in AutoIt hinter uns. Das Skript muß sehr wahrscheinlich angepaßt werden.

    2. Wenn du Fehlermeldungen bekommst, lies sie. Und wenn du wünscht, dass wir dir dazu Hilfe leisten, dann Poste Code und Fehlermeldungen - aber dann bitte auch im richtigen Forum.

    3. Wenn du Probleme mit der deutschen Sprache hast, schalte bitte die Rechtschreibprüfung in deinem Editor an! Es ist eine Zumutung dein Kauderwelsch zu Lesen!