Gast Geschrieben Oktober 18, 2010 Geschrieben Oktober 18, 2010 Hallo erstmal,(vorab: OCR = http://de.wikipedia.org/wiki/Texterkennung)Ohne lange Umschweife:Ich möchte ein kleines Programm schreiben, dass automatisch Roulette-Zahlen aus einem Online-Roulette-Spiel einliest. Ich bin angehender Softwareentwickler und Ingenieur, also nicht ganz ahnungslos. Ich beherrsche C# und VB.NET.Ich suche eine OCR .NET Componente, die diese Aufgabe für mich erledigt, habe aber noch keine Komponente gefunden, die dies schafft.Ein Beispiel, welches das Modul erkennen muss, ist im Dateianhang!Ich habe folgende Componenten bereits getestet, leider erfolglos:http://asprise.com/product/ocr/index.php?lang=csharphttp://www.ocrtools.com/Ich habe dieses Programm getestet, leider erfolglos:http://www.brothersoft.com/gocr-windows-frontend-38579.htmlIch habe die Online Scanner getestet, leider erfolglos:http://www.free-ocr.com/http://www.newocr.com/Ich bin für alles offen: Componenten, Programme, Online-Scanner. Hauptsache es funktioniert. Oder hat jemand noch eine ganz andere Idee?? Das wäre echt klasse!mfg,Zocker85
Faustan Geschrieben Oktober 18, 2010 Geschrieben Oktober 18, 2010 Moin,nimm doch einfach einen Bildausschnitt, diesen lässt du als Bild speichern. Kommt eine neue Zahl vergleicht dein Programm alle 37 Bilder und bekommt so die gefallene Zahl raus.Mit OCR ist viel zu umständlich.
Gast Geschrieben Oktober 18, 2010 Geschrieben Oktober 18, 2010 Generell echt keine schlechte Idee, sowas hatte ich mir auch schon gedacht.Nur müsste ich dann jedes Mal, wenn ich ein Online-Casino testen will, - die 37 Screenshot-Ausschnitte erzeugen lassen (theoretisch kein Problem), und - die 37 Ausschnitte den Zahlen zuordnen.nicht gerade wenig Arbeit.Ausserdem müsste die Bildaufnahme sehr genau arbeiten, um zwei exakt gleiche Bilder zu erhalten, um sie z.B. nach Dateigröße vergleichen zu können.Oder gibt es eine andere, einfachere Möglichkeit, Bilder zu vergleichen?Ich dachte mir mit einem Texterkennungs-Modul könnte ich alle Fliegen mit einer Klappe schlagen.mfg
Faustan Geschrieben Oktober 18, 2010 Geschrieben Oktober 18, 2010 (bearbeitet) Dateigröße wird nicht viel nützen. Der Inhalt muss vergleicht(Anm. geile Stilblüte) verglichen werden. Du nimmst dir den Bildausschnitt wo die Zahl im Spielfenster erscheint. Lässt den Ausschnitt als temp.bmp speichern. Dann 'ne Schleife, die die temp.bmp mit den vorhandenen 0.bmp-36.bmp vergleicht. Wenn keine Übereinstimmung, Dialog zum speichern der temp.bmp als Zahl.bmp, nochmal Scan laufen lassen, Erkennung, pling Zahl erkannt.Klar muss man das bei jedem OC neu ausrichten. Ist aber nicht die Arbeit, musst ja nur x, y und breite, grösse des Auschnitts anpassen. Die 37 Bilder lassen sich nebenbei einmal speichern, und sind dann ja vorhanden.Was man noch machen könnte, du scannst die Farbwerte der Pixel, einmal waagerecht lang. Diesen String speicherst als Text. Und lässt dann die Strings abgleichen.Wie man das mit C# realisiert, ich habe keine Ahnung. Ich programmier mein Zeugs mit Click.exe. Auch wenn einige die Nase rümpfen wie man nur so "billig Baukasten-Zeugs"* nutzen kann, mit 50 Zeilen ist sowas erledigt und lööft. EDIT: Schreipfeler sind gratiz, Rechtschreib- & Grahmatikschwähche ebensoh. Ich brauch' Kaffee!*Muss das noch nachträglich in Klammern setzen. Hat mich schliesslich knappe 200€ gekostet. Also doch nicht so billig *g. bearbeitet Oktober 18, 2010 von Faustan
Gast Geschrieben Oktober 18, 2010 Geschrieben Oktober 18, 2010 Prinzipiell stimme ich dir vollkommen zu!Aber ich habe immer noch nicht geschnallt, WIE ich den Bildinhalt vergleichen soll. Sorry.Was man noch machen könnte, du scannst die Farbwerte der Pixel, einmal waagerecht lang. Diesen String speicherst als Text. Und lässt dann die Strings abgleichen.Was ist, wenn ich das OC-Fenster z.B. am nächsten Tag nicht wieder Pixelgenau an die selbe Stelle positioniere wie heute? Dann passen die Strings wieder nicht und ich muss alles wieder von vorne machen?
Faustan Geschrieben Oktober 18, 2010 Geschrieben Oktober 18, 2010 Wie man den Bildinhalt vergleicht, wenn des mit C# programmierst frag' halt mal google. Alternativ kannst du die Bilddateien ja auch als Hex auswerten, die stimmen dann ja auch 100% überein.Um die pixelgenaue Erfassung sicherzustellen solltest du mitreinbauen dass das Fenster des Casinos immer an die gleiche Position mit der gleichen Größe gesetzt wird. Wenn's 'ne eigene Casinosoftware ist hat sie ja ihre Grösse, musst dann nur dafür sorgen das es auf dem Bildschirm ausgerichtet wird.Zu programmierspezifischen Sachen kann ich wie gesagt nix weiter sagen, ich kann nur grob 'nen Lösungsweg vorgeben. Alles andere weiss google
Gast Geschrieben Oktober 18, 2010 Geschrieben Oktober 18, 2010 Ich werds ausprobieren und berichten!Würd mich trotzdem noch auf Lösungsmöglichkeiten mit OCR-Software freuen,vielleicht weiß ja jemand doch noch was.Ich hab grad eben noch den Online Konverter http://www.onlineocr.net/ getestet.Das ist der beste bis jetzt. er erkennt immerhin mehr als die Hälfe aller Zahlen, wenn ich den Screenshot-Ausschnitt, den ich hochlade, vorher noch um 500% vergrößere.Vielleicht gibts ja noch was Besseres ...
suchender Geschrieben Oktober 18, 2010 Geschrieben Oktober 18, 2010 Hallo erstmal,................Ohne lange Umschweife:Ich möchte ein kleines Programm schreiben, dass automatisch Roulette-Zahlen aus einem Online-Roulette-Spiel einliest. Ich bin angehender Softwareentwickler und Ingenieur, also nicht ganz ahnungslos. Ich beherrsche C# und VB.NET.Ich suche eine OCR .NET Componente, die diese Aufgabe für mich erledigt, habe aber noch keine Komponente gefunden, die dies schafft.Ein Beispiel, welches das Modul erkennen muss, ist im Dateianhang!...................................mfg,Zocker85Servus @Zocker85,"rennschnecke" (Mitglied in diesem Forum) hat vor einiger Zeit ein Programm erstellt, das die gefallenen Zahlen aus einem OC ausliest und dann auch automatisch die Einsätze tätigt. Ich denke, wenn Du mit ihm Kontakt aufnimmst, kann er Dir ja sagen, mit welcher Programmiersprache er das gemacht hat. Ich habe es leider vergessen (jaja, das Alter)L.G.suchender
Gast Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 Das hört sich gut an.Ich darf aber irgendwie keine Nachrichten im Forum schreiben.Hoffe mal, "rennschnecke" stoßt hier im Thread mit dazu
suchender Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 Das hört sich gut an.Ich darf aber irgendwie keine Nachrichten im Forum schreiben.Hoffe mal, "rennschnecke" stoßt hier im Thread mit dazu Servus @Zocker85,ich habe eine Nachricht an "rennschnecke" geschrieben, vielleicht liest er sie und meldet sich dann, habe auch schon lange nichts mehr von ihm gehört.L.G.suchender
Gast Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 Oh ok, alles klar danke.Hab mich vorhin in Verbindung gesetzt mit paroli, wegen den Nachrichten.Jetzt wird die rennschecke wohl zweimal informiert Bin übrigens grad fest am programmieren, bei so ner kleinen Software gibts ja immer ziemlich viel zu schrauben:was schon funktioniert:- automatische Screenshots (und Screenshot Ausschnitte)- die ersten "Systeme" laufen schon.- Intelligente Maussteuerung funktioniert schon. (MouseMove MouseClick)- Festlegen der Positionen der Eingabeflächen der OC Software (z.B. wo muss die Maus klicken für "Red", usw.)- manuelle Zahleneingabe über Nummernschaltflächewas noch kommt:- viele viele Systeme- manuelle Zahleneingabe über Permanenzen/Textdateien- und natürlich automatische Zahlenerkennung aus der OC-Software-Oberfläche(wenn alles so funtioniert wie geplant, gibts für interessierte auch gerne ein Demo)was mich noch interessiert: LongTerm Systeme zum einprogrammieren und testen.
suchender Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 .............(wenn alles so funtioniert wie geplant, gibts für interessierte auch gerne ein Demo).............Servus,ich bin immer interessiert - siehe mein Nick !L.G.suchenderP.S.: wenn ich was wirklich GUTES hätte, würde ich nicht mehr suchen
rennschnecke Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 Servus @Zocker85,ich habe eine Nachricht an "rennschnecke" geschrieben, vielleicht liest er sie und meldet sich dann, habe auch schon lange nichts mehr von ihm gehört.L.G.suchenderHi,here I am! Also, meine Software nutzt kein OCR - ich habe dem Programm lediglich beigebracht, was rot/schwarz ist! War länger nicht hier und Hinweise, ob Mail vorhanden ist oder nicht bekomme ich nicht.Den Grund hatte ich hier irgendwo schonmal beschrieben.lgSchnecke
Gast Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 Hallo rennschnecke.verrätst du mir evtl, wie du das gelößt hast, dass rot/schwarz erkannt wird?ich hab mich inzwischen auch etwas vom OCR distanziert. Ich probier grad, eine einigermaßen elegante Lösung mit Bildervergleich hinzubekommen, wie Faustan vorgeschlagen hat.Wahrscheinlich wird der einzige Nachteil sein, dass sich das OC-Fenster immer wieder an genau der selben Stelle aufm Desktop befinden muss. Mit Win7 ist das einigermaßen kompfortabel, wegen dem automatischen Andocken von Fenstern, für WinXP gibts ein kleines Zusatztool (AeroSnap), dass diese Funktionalität simuliert, (oder Vollbildmodus, wenn man wie ich zwei Bildschirme hat ). Oder ich finde eine Möglichkeit, ein fremdes Fenster an meine Programm-Form anzudocken. Vielleicht hat da jemand ne Idee? (Das alles ist grad in Testphase, ich schreib dann obs geklappt hat.)Zurück zu rot/schwarz erkennen: wie gesagt, würd mich auch sehr interessieren! please tell me!Ich muss aber gleich mitm "aber" kommen:Aber: dass is leider auch keine Dauerlösung für mich, weil:Die Systemchen, die ich gerade teste, will ich nicht nur auf rouge/noir laufen lassen,sondern dazu noch parallel Even/Odd und High/Low! --> Dreifache Ausbäute in der gleichen Zeit (alles, was ich teste sind einfache Chancen, in ferner Zukunft evtl mal noch Dutzende und Colonnen)
rennschnecke Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 Hallo rennschnecke.verrätst du mir evtl, wie du das gelößt hast, dass rot/schwarz erkannt wird?Klar, ganz einfach:Vor dem eigentlichen Spiel muss man meinem Programm beibringen, wo es einzelne Dinge findet.U.a. auch das Feld, wo die Farbe zu finden sein wird. Beim Klick messe ich einfach die Koordinate und nach einem Dreh einfach jeweils den Farbwert.Die Systemchen, die ich gerade teste, will ich nicht nur auf rouge/noir laufen lassen,sondern dazu noch parallel Even/Odd und High/Low! --> Dreifache Ausbäute in der gleichen Zeit das ist unsinnig!
Gast Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 Vor dem eigentlichen Spiel muss man meinem Programm beibringen, wo es einzelne Dinge findet.U.a. auch das Feld, wo die Farbe zu finden sein wird. Beim Klick messe ich einfach die Koordinate und nach einem Dreh einfach jeweils den Farbwert.alles klar, genau so hab ich das auch gelöst! (eben bis auf die Zahlen)das ist unsinnig!warum?
rennschnecke Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 alles klar, genau so hab ich das auch gelöst! (eben bis auf die Zahlen)warum?Weil es mathematisch keinen Sinn macht!
Hütchenspieler Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 (bearbeitet) Hallo Zocker85,Faustan hat eigentlich schon beschrieben, wie man so etwas umsetzten kiann.Mein Bot macht es prinzipiell ähnlich. Die einfachste Methode (langsam) an die Farbwerte der einzelnen Bildpunkte zu kommen ist die Bitmap myBitmap = new Bitmap("Zahl.bmp");Color pixelColor = myBitmap.GetPixel(50, 50);Ist aber etwas träge, wenn die Bilder größer werden. Etwas eleganter bzw. schneller ist ein direkter Zugriff und ein Vergleich mit memcmp.Für die Ermittlung der gefallenen Zahl sollte es reichen. LGHütchenspieler bearbeitet Oktober 20, 2010 von Hütchenspieler
Optimierer Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 (bearbeitet) Hallo zusammen,Vor dem eigentlichen Spiel muss man meinem Programm beibringen, wo es einzelne Dinge findet.U.a. auch das Feld, wo die Farbe zu finden sein wird. Beim Klick messe ich einfach die Koordinate und nach einem Dreh einfach jeweils den Farbwert.Bitmap myBitmap = new Bitmap("Zahl.bmp");Color pixelColor = myBitmap.GetPixel(50, 50);Ist aber etwas träge, wenn die Bilder größer werden. Eleganter bzw. schneller ist ein direkter Zugriff und ein Vergleich mit memcmp.Interessant. Sowas wollte ich auch mal haben und habe jemanden gefragt, der sich angeblich in Java gut auskennt. Der meinte aber, dass man keinen Zugriff auf die Maus in einem Java-Fenster bekommt. Das Java-Programm würde die Maus sozusagen stehlen, so dass man sie nicht mehr von außen über ein Programm steuern könne und auch nichts mehr auslesen könne, aus Sicherheitsgründen. Naja, so ganz kann ich mir das nicht vorstellen. Es muss doch möglich sein, einen normalen Benutzer zu simulieren, der die Maus wirklich herumschiebt, oder?Funktioniert denn eure Methode mit Java-Programmen, bei DB zum Beispiel, oder hat mein Bekannter recht und es geht nicht?Danke und Gruss, Optimierer bearbeitet Oktober 19, 2010 von Optimierer
Gast Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 @Hütchenspieler:ich zitier mich mal selber: ich hab mich inzwischen auch etwas vom OCR distanziert. Ich probier grad, eine einigermaßen elegante Lösung mit Bildervergleich hinzubekommen, wie Faustan vorgeschlagen hat.bin grad fleißig dran aber trotzdem danke.@rennschneckedas musst du mir schon etwas genauer erklären.Also ich lasse mit ein und den selben Zahlen mein System "Sys1" mit schwarz durchlaufen, dann mit den selben zahlen mit rot, dann mit odd, usw.wie man im Screenshot-Anhang (siehe Bild links unten) erkennen kann, ergeben sich bei mir bei jeder einfachen Chance zw. 34 und 41 Einheiten "plus". (Scan mit 100000 random zahlen).das macht auf mich nen recht konstanten Eindruck.Gruß Zocker
Gast Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 Sreenshot vergessen ...(übrigens das andere fenster (links oben) soll zeigen, wie ich das mit dem Positionieren (X/Y-Koordinaten) gelöst hab)
Gast Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 @OptimiererMaussteuerung mit .Net-Umgebung ist auf jeden Fall kein großes Ding. Das läuft schon ziemlich gut!Ansteuerung über "user32.dll" Hab 2 Funktionen Programmiert: MouseMove(x, y) und MouseClick(), mehr brauch ich nicht
Hütchenspieler Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 (bearbeitet) Hallo Optimierer, bei DB funktioniert das einwandfrei. Spielt völlig automatisch. Man wird zum Zuschauer und kann sich anderen Dingen widmen ... LGHütchenspieler bearbeitet Oktober 19, 2010 von Hütchenspieler
Gast Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 ... Ich bin angehender Softwareentwickler und Ingenieur, also nicht ganz ahnungslos. Ich beherrsche C# und VB.NET....Deine Probleme und Fragen stellen diese Aussage doch sehr in Zweifel.Das Problem der Bildposition auf dem Monitor lässt sich durch eine Transformation von relativen in absoluteKoordinaten umgehen:Innerhalb des "Casino-Fensters" steht der zu untersuchende Bildausschnitt immer an der selben Stelle.Man muss also nur die Position des "Casino-Fensters" auslesen und kann so die Position innerhalb desgesamten ScreenShots berechnen. So lassen sich auch die absoluten Koordinaten für die Maussteuerungermitteln.Ebenso ist es völlig unnötig, ganze Bildbereiche pixelweise zu vergleichen. Man braucht nur für den gewünschten Bildausschnitt einen Hash-Wert ermitteln und vergleicht diesen mit zuvor gespeicherten Werten.
rennschnecke Geschrieben Oktober 19, 2010 Geschrieben Oktober 19, 2010 @rennschneckedas musst du mir schon etwas genauer erklären.Also ich lasse mit ein und den selben Zahlen mein System "Sys1" mit schwarz durchlaufen, dann mit den selben zahlen mit rot, dann mit odd, usw.wie man im Screenshot-Anhang (siehe Bild links unten) erkennen kann, ergeben sich bei mir bei jeder einfachen Chance zw. 34 und 41 Einheiten "plus". (Scan mit 100000 random zahlen).das macht auf mich nen recht konstanten Eindruck.Gruß ZockerDu erhöhst Deine Chancen nicht, indem Du dreimal EC zeitgleich spielst.Eher im Gegenteil hast Du dann vielleicht zwar weniger Verluste in kurzer Zeit, weil das eine den Verlust vom anderen ausgleicht, aber anders herum gesehen hast Du wahrscheinlich auch nicht so viele hohe Gewinne (aus gleichem Grund).
Recommended Posts
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden