Jump to content
Roulette Forum

Recommended Posts

Geschrieben

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=csharp

http://www.ocrtools.com/

Ich habe dieses Programm getestet, leider erfolglos:

http://www.brothersoft.com/gocr-windows-frontend-38579.html

Ich 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

post-27450-1287404463_thumb.png

Geschrieben

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. :reindeer:

Geschrieben

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

Geschrieben (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. :reindeer:

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 von Faustan
Geschrieben

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? :reindeer:

Geschrieben

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 :reindeer:

Geschrieben

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 ...

Geschrieben
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,

Zocker85

Servus @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

Geschrieben

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 :reindeer:

Geschrieben
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 :reindeer:

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

Geschrieben

Oh ok, alles klar danke.

Hab mich vorhin in Verbindung gesetzt mit paroli, wegen den Nachrichten.

Jetzt wird die rennschecke wohl zweimal informiert :reindeer:

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äche

was 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.

Geschrieben
.............

(wenn alles so funtioniert wie geplant, gibts für interessierte auch gerne ein Demo)

.............

Servus,

ich bin immer interessiert - siehe mein Nick !

L.G.

suchender

P.S.: wenn ich was wirklich GUTES hätte, würde ich nicht mehr suchen :reindeer:

Geschrieben
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

Hi,

here I am! :reindeer:

Also, meine Software nutzt kein OCR - ich habe dem Programm lediglich beigebracht, was rot/schwarz ist! :lachen:

War länger nicht hier und Hinweise, ob Mail vorhanden ist oder nicht bekomme ich nicht.

Den Grund hatte ich hier irgendwo schonmal beschrieben.

lg

Schnecke

Geschrieben

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 :lachen:). 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 :reindeer:

(alles, was ich teste sind einfache Chancen, in ferner Zukunft evtl mal noch Dutzende und Colonnen)

Geschrieben
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 :reindeer:

das ist unsinnig!

Geschrieben
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?

Geschrieben (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.

LG

Hütchenspieler :reindeer:

bearbeitet von Hütchenspieler
Geschrieben (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 von Optimierer
Geschrieben

@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

:reindeer: aber trotzdem danke.

@rennschnecke

das 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

Geschrieben

Sreenshot vergessen :reindeer: ...

(übrigens das andere fenster (links oben) soll zeigen, wie ich das mit dem Positionieren (X/Y-Koordinaten) gelöst hab)

post-27450-1287510932_thumb.png

Geschrieben

@Optimierer

Maussteuerung 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 :reindeer:

Geschrieben (bearbeitet)

Hallo Optimierer,

bei DB funktioniert das einwandfrei.

Spielt völlig automatisch.

Man wird zum Zuschauer und kann sich anderen Dingen widmen ... :reindeer:

LG

Hütchenspieler :lachen:

bearbeitet von Hütchenspieler
Geschrieben
... 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 absolute

Koordinaten 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 des

gesamten ScreenShots berechnen. So lassen sich auch die absoluten Koordinaten für die Maussteuerung

ermitteln.

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.

Geschrieben
@rennschnecke

das 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

Du 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).

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...