Quote:
Originally Posted by furiosos
Hallo,
Habe hier einen Browsergame das leider einen sehr hart zu
knackenden Captcha system hat.
Hier wie es aussieht:
Es geht darum den Ring im Ring anzuklicken.
Ich dachte mir das man einfach nach Elipsen sucht nur erschweren
mir diese Striche die durch den Kreisen gehen und es werden nicht alle
Kreise gefunden.
Beispiel: Suche nach Elipsen -> suche nach elipsen innerhalb Elipsen
Ich hoffe ihr könnt mir helfen
Lg
Furiosos
|
Würde dafür ganz spontan folgende Heuristik anwenden:
Man fängt bei einigen 1000 zufälligen Punkten an. Auf jedem dieser zufälligen Punkte setzt man programmtechnisch einen Marker. Jetzt bewegen sich die Marker zu dem nähesten schwarzen Pixel. Von diesem Pixel aus versuchen die Marker dann einen Rundlauf zu mache, wobei die maximale Länge des Rundlaufs nicht überschritten werden darf, sonst ist das Objekt kein Kreis. Um einen kurzen Rundlauf zu finden, würde sich in diesem Fall wohl der A*-Algorithmus anbieten, damit braucht man für ein derartiges Bild rund 2ms pro Marker (wenn man Multithreading anwendet und von 1000 Markern auf einer Maschine mit 4 Kernen ausgeht, wären das für eine Runde 500msec). Das heißt du setzt den maximalen Umfang eines Kreises auf z.B. 1/4 des Umfangs des Bildes. Jeder Pfad, der dann keinen Rundlauf ermöglicht, wird gelöscht und dann beginnt eine neue Runde.
Nach 3-10 Runden (also nach ca. 1500-5000msec) sollte das Bild dann "klar" genug sein, damit dein Algorithmus funktioniert.
Edit:
Der Algorithmus könnte suboptimal werden, eine Alternative wäre es mit einem Neuronalem Netz zu arbeiten, aber das erscheint mir bei der Größe der Bilder auch nicht gerade optimal.
Edit2:
Wenn man den Algorithmus andersrum anwendet, sodass man nicht alle Nicht-Rundläufe löscht sondern nur die Rundläufe, die es sicher gibt, in ein neues Bild überträgt, dürften die Ergebnisse dabei besser sein. Man muss jedoch nach jeder Runde darauf achten, dass bereits benutzte Pfade nicht noch einmal benutzt werden. Anschließend sollte dein Algorithmus auf das entstehende Bild angewendet werden und das Ergebnis sollte mehr als gut sein. Die Dauer dürfte sich auf Grund der zusätzlichen Pfadprüfung wohl etwas verlängern. Du solltest auch bedenken, dass Stellen wo sich mehrere Linien kreuzen wieder besucht werden dürfen.