Text in einem Bild suchen

  • Hallo zusammen,
    ich frage mich, ob es möglich ist mit Autoit einen Text auf dem Bildschirm zu suchen..
    Der Text ist immer gleich, hat immer die gleiche Größe / Farbe.
    Die Position ist aber nicht immer identisch (da verschiedene Auflösungen).
    Währe PixelGetColor vielleicht ein Ansatz dafür ?

    Mein Script soll die Konfiguration von einem Spiel (InGame) erkennen und entsprechend meiner Vorgaben einstellen.

    Es würde auch schon helfen - falls möglich - via Vergleich zu suchen.
    Sprich ich habe ein Referenzbild das ich in Autoit einladen würde und dann auf dem Bildschirm suche.

    Die Suche soll ferner nur einmal stattfinden.. Also nicht ständig "auf die Sekunde" aktuell sein.

    Hoffe ihr könnt mir helfen, danke

    kesandal

    • Offizieller Beitrag

    Einmalig alle Koordinaten der Schrift ermitteln. Wenn diese einfarbig ist, kannst du das komfortabel hiermit machen. Schrittweite dabei auf 1 aber den Scanbereich begrenzen (du weißt ja grob, wo du suchen mußt).
    Dann mußt du vom ersten gefundenen Pixel ausgehend, alle anderen Werte relativ darstellen.
    z.B. Werte X,Y: (120,20 / 121,20 / 122,20 / 121,21)
    als relationale Werte
    120,20 = x,y
    121,20 =x+1,y
    122,20 = x+2,y
    121,21 = x+1,y+1

    Dann legst du einen variablen Suchbereich für den Start fest. Kannst du ja ermitteln um wieviel Pixel der Bereich schwankt.
    Für alle mögliche Startpunkte führst du dann einen Bereichsscan aus und vergleichst das Ergebnis mit der relativen Vorgabe.
    Ist völlige Übereinstimmung, hast du deinen Text.

    Falls die Schrift mehrfarbig ist, ist es wesentlich aufwändiger. Du müßtest dann jeden Farbpunkt einzeln auf Existenz scannen. Und zu den relativen Koordinaten als 3. Komponente die Farbe hinzufügen.

  • könnte man nich nen screenshot erstellen - dann mitm ocr programm sich die sachen rauspfünscheln und mit den koords arbeiten?

  • Readeris könnte man schön automatisieren,
    aber, falls die Schrift einfarbig ist und eine einigermaßen leserliche größe hätte könnte man schleifenförmig prüfen lassen ob mehrere Pixel nebeneinander die gleiche Farbe haben, was in einem normalen Bild ohne Schrift ja nicht sehr oft der Fall ist (dann braucht man auch nicht die Koordinaten der Schrift vorher ermitteln).

    Grüße Vinschni

    Einmal editiert, zuletzt von Vinschni (28. Mai 2007 um 15:24)

  • Hallo,
    ich blick noch nicht durch wie und was man machen kann, um einen Text aus einem "Bild" bzw. vom Bildschirm (ist aber kein copy&paste Text) aus zu lesen!

    1. Mit readiris kann man doch nicht den Bildschirm ocr'ren, oder?
    2. Wie kann ich mich als Anfänger schlau machen, welche Methoden es gibt?

    Ich will gerne Zahlen auslesen (siehe Bild), die Schriftgröße kann ich auch recht groß machen, aber ab und zu wechselt die Hintergrundfarbe! Ist das ein Problem?
    Dann sollen die "Hochzahlen" ignoriert werden.

    Ich wäre dankbar für Kommentare, wie/was mein Vorhaben möglich ist.

    Danke

    • Offizieller Beitrag

    Hi!

    Ja, wäre möglich.
    Die Frage ist, muss es sein? Vielleicht geht es mit der Excel-UDF einfacher (wenn es Excel ist) oder man kann es aus einer anderen Datei lesen. Das wäre sicherer umzusetzen, OCR ist immer ein Risiko.

    peethebee

  • Das wäre sicherer umzusetzen, OCR ist immer ein Risiko.
    Ja, ist nicht sauber...
    Nur nehem ich an, dass es anders leider nicht gehen wird! ;(

    Es handelt sich um ein Javaprogramm, die Zahlen kommen verschlüßelt über das Web und sind somit - ich weiß nicht wie ich es anders nennen soll - quasi nur als "Bild" verfügbar. Man kann diese Zahlen nicht so einfach "auslesen"! Weil man einfach nicht drankommt! X(

    • Offizieller Beitrag

    Hi!

    Hm, da wird nicht viel anderes gehen.
    Ich kann jetzt nichts versprechen, aber auf meiner "C#-Todo-Liste" steht ein OCR-Tool jetzt wieder ganz oben ;). Mal schauen, was ich da hinbekomme...

    Edit: Eine Idee noch. Kannst du es irgendwie in die Zwischenablage bringen oder markieren? Dann käme man mit (Send und) ClipGet ran.

    peethebee

  • du weisst ned zufällig wie eine verschlüsselte zahl aussieht?
    wenn doch dann bitte einmal verschlüsselten code posten. ich werd mich dann ma bemühen den zu encoden :)

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
  • Zitat

    Original von peethebee
    Hm, da wird nicht viel anderes gehen.
    Ich kann jetzt nichts versprechen, aber auf meiner "C#-Todo-Liste" steht ein OCR-Tool jetzt wieder ganz oben ;). Mal schauen, was ich da hinbekomme...

    Edit: Eine Idee noch. Kannst du es irgendwie in die Zwischenablage bringen oder markieren? Dann käme man mit (Send und) ClipGet ran.


    Zwischenablage bekomm ich nichts, aber hab inzwischen was gefunden! =) Genau was ich brauche!
    http://www2.oanda.com/cgi-bin/msgboa…c;f=16;t=005593

    Aber ich hab keinen Plan wie die das gemacht haben!
    Ob die hiervon ausgingen? http://www.autoitscript.com/forum/index.php?showtopic=51042&hl=OCR+IFalcons
    peethebee nicht dass du das OCR-Rad neu erfindest!
    Wenn du mir was schreiben kannst, das diese Zahlen in eine CSV Datei schreibt (sowas such ich noch), würde ich gerne was spenden. =)
    ("in CSV Datei schreiben"... Wäre dann vielleicht OffTopic in diesem Thread, bei Interesse per PM? Oder soll ich einen Projekt-Thread öffnen?) Sehe grad, peethebee ist ja "Seine Durchlaucht" von autoit.de!? :D


    Blubkuh, ich hätte keinen Plan gehabt, wie an die Zahl zu kommen... aber nu is ja auch anders gelöst... (hoffe ich. Praxis kommt noch)

    2 Mal editiert, zuletzt von tam (12. August 2007 um 23:34)