Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: elmaro en 31 Marzo 2009, 01:19 am



Título: Leer letras en imagenes
Publicado por: elmaro en 31 Marzo 2009, 01:19 am
Buenas a todos nuevamente.
Se me ocurrio hacer una aplicacion de uso didactico para ahorrar un poco de tiempo en algunas cosas.
Consiste en leer letras en una imagen, las cuales formaran un nombre. No es ningun tipo de bot, aclaro.

Si alguien me puede orientar se lo agradeceria, yo ya estoy investigando sobre el tema y en cuanto tenga algo lo posteo.

Gracias.


Título: Re: Leer letras en imagenes
Publicado por: elmaro en 31 Marzo 2009, 04:00 am
Paso a comentar la idea, asi queda claro lo que quiero hacer.
Hay recuadros en la pantalla con nombres. Los cuales puedo tipear en una web y consultar su informacion.
Mi idea es obtener una captura de pantalla y recortar la imagen. Por cada parte revisar si hay letras escritas (que es eso lo que no puedo hacer) y luego utilizar esos nombre para consultar en la web automaticamente y tener la informacion requerida sin perdida de tiempo en pantalla.

En fin, creo que es algo complicado descubrir el texto en las imagenes.


Título: Re: Leer letras en imagenes
Publicado por: KJD en 31 Marzo 2009, 15:00 pm
todavía no entiendo que es lo que quieres hacer, pero llendo al caso se me ocurre lo siguiente, sacar un screenshot de una cierta posicion en la pnatalla.

Si los nombres estan en negro y el recuadro en blanco (seria lo mejor), ir leyendo con pixelcolor donde es negro y donde es balnco y creaar una plantilla para los nombres, espero que se entienda.

Ahora si los nombres son completamente aleatorios, ahi se complicaria un poco ams el algoritmo.


Título: Re: Leer letras en imagenes
Publicado por: elmaro en 31 Marzo 2009, 15:27 pm
Buenas a todos nuevamente.
Se me ocurrio hacer una aplicacion de uso didactico para ahorrar un poco de tiempo en algunas cosas.
Consiste en leer letras en una imagen, las cuales formaran un nombre. No es ningun tipo de bot, aclaro.

Si alguien me puede orientar se lo agradeceria, yo ya estoy investigando sobre el tema y en cuanto tenga algo lo posteo.

Gracias.

Exacto. Yo empeze por hacer un screen de la pantalla, y luego obtener un recorte de la imagen tomada en relacion a donde este el puntero del mouse, para reducir la imagen.
Dejo una imagen de ejemplo, ese no es el recuadro que toma, pero recorto exactamente donde esta el nombre. Los colores de las letras son todos iguales parece ser.

(http://s3.subirimagenes.com/otros/previo/thump_2261406img.jpg) (http://www.subirimagenes.com/otros-img-2261406.html)

Como veran es el famoso juego MU. El fondo en donde se encuentra el nombre puede variar a verde o rojo en pocos casos. Pero el color de las letras aparentemente se mantiene.

Cualquier sugerencia es de ayuda.
Gracias


Título: Re: Leer letras en imagenes
Publicado por: Hadess_inf en 31 Marzo 2009, 18:49 pm
Vas a tener que usar inteligencia artificial para llegar a lo que deseas.


Título: Re: Leer letras en imagenes
Publicado por: KJD en 31 Marzo 2009, 21:25 pm
Es como dice Hadess_inf, tendras que "crear" algun metodo "inteligente" para esto. Una cosa que no me contestaste los nombres son fijos???? si es así puedes dividir la imagen recortada en celdas o casilleros (pixeles) con filas y columnas, y empezar a testear, por ejemplo: Si en la columna 1 las filas 1, 2, 3,  4 y 5 y la columna 2 las  filas 1, 3 y 5 son blancas es la letra E por ejemplo. y así crear la plantilla.

Con c# no es nesesario sacar una imagen completa y despues recortarla sino sacas el screenshot en la pocicion y tamaño que quieras.

Otra cosa que puedes hacer, si la imagen es fija, teniendo encuenta los 3 fondos, al igual que los nombres a leer, puedes guardar los 3 pedazos de imagen y compararlos directamente con el screenshot, sin tener que leer las letras de esta.

Y por ultimo, no se si el Mu usara algun sistema anti-Cheat, pero si usa GameGuard, habra muchisimas funciones que no podras usar, como la de GetPixelColor por ejemplo.

Saludos


Saludos.


Título: Re: Leer letras en imagenes
Publicado por: elmaro en 31 Marzo 2009, 22:39 pm
Entiendo.
Los nombres no son fijos. Ya que la idea es ir obteniendo la informacion de los personajes a medida que van apareciendo.

El Mu por ahora no tiene un GameGuard, pero lo tendra en poco tiempo. Pero independientemente de que lo tenga o no, no voy a poder usar GetPixelColor en una imagen que tengo cargada dentro de mi aplicacion?

Creo que un avanze seria poder encontrar en la foto tomada todos los rectangulos presentes ( que son los que encasillan los nombres, que pueden ser verdes, rojos o del color que se encuentra en la imagen que subi). Una vez recuperado los rectangulos que contienen los nombres, seria mas facil ya que el area de busqueda es menor.
El problema es que no se como ubicar formas. Esta es la primera vez que manejo imagenes.

Saludos.



Título: Re: Leer letras en imagenes
Publicado por: KJD en 1 Abril 2009, 02:54 am
Lamentablemente no, gameguard es un rootkit que crea hooks en varias apis de windows, incluyendo la que utiliza GetPixelColor que es la mas utilizada en scripting y bots para juegos. Si implementan gameguard, muy poco podras hacer a menos que encuentres un Bypass o un emulador de gamguard, yo juego al rappelz que es otro mmorpg y no encontre forma de vencer a gameguard.

Pero lo que si te deja es la comparacion de imagenes, por eso te decia de comparar imagenes fijas con las tomadas de screenshot.

todavía no se que quieres hacer, pero si la idea es tener un registro de quien se conecta o no   :rolleyes:, lo mejor seria sacar una screen de cada nombre y compararla ya que si implementan gameguard poco mas podras hacer.

PD: GameGuard tambien hookea apis que los bots utilizan como la de mover el mouse, emular pulsacion de teclado, y muchas otras...... si consigues algun emulador me avisas


Título: Re: Leer letras en imagenes
Publicado por: elmaro en 1 Abril 2009, 03:13 am
Lo que quiero hacer es que a medida que vallan apareciendo personajes en la pantalla, ir obteniendo los nombres, y con esos nombre consultar via web la informacion del personaje (asi se si es mas fuerte que yo o no :P jajaja)

Ok, voy a investigar sobre el tema.
Yo me acuerdo que use un WinMu. Teniendo el juego en una ventana podia enviar clicks y enviar teclas, pero quedaba inutilizable la pc. Las teclas se enviaban al escritorio en realidad.
Creo que voy a abandonar la idea hasta tener mas tiempo :S
Cuando consiga algo interesante lo posteo.

Gracias por las respuestas

Saludos!


Título: Re: Leer letras en imagenes
Publicado por: Gorky en 5 Junio 2009, 13:49 pm
No se si lo que te voy a decir existe pero de eso ya te encargas tu de investigarlo.
Busca alguna libreria de reconocimiento de caracteres (OCR) e intentalo. Se que para linux existe asi que no creo que para windows haya problema.


Título: Re: Leer letras en imagenes
Publicado por: matiasGuacharaca en 19 Junio 2009, 02:28 am
Hola, si lo que entiendo es que cuando en un juego de rol online en 3 D aparezcan nombres nuevos y automáticamente tu sistemita copie los nombre, los reconozca correctamente, y luego los busque en la web para compararlos contra ti, mas que seguir jugando yo que vos me dedicaria a vender el sistemita, estoy seguro que que te haces millonario!.
 Yo di reconocimientos de imagen en mi carrera, hace unos 2 años atras, usamos inteligencia artificial, la imagen que teniamos que reconocer era un cuadro de 12 x 12 cuadritos, que podian ser blancos o negros, y formanaban una de 6 imganes posibles, luego, teniamos que entrenar al sistema con imagenes parecidas pero distorsionadas y agregarle un grado de correccion, todo esto se hacia con una red neuronal de 124 neuronas por 124 neuronas (ya te estaras imaginando lo complicado que es). Luego de 6 mese haciendo el ejercicio, muchos de nosotros no aprobaron, y los que aprobaron, la mayoria el sistema seguía teniendo un margen de error del 10 al 20 por ciento.

Como te daras cuenta, mi ejercicio era infinitamente mas facil que lo que planteas tu... y aun asi la dificultad para hacerlo creo que no justifica el hecho que lo uses para un juego... buscate un sponsor que te pague unos millones y ponete a estudiar! :D :D :D


Saludosss


Título: Re: Leer letras en imagenes
Publicado por: KJD en 19 Junio 2009, 22:09 pm
Matias, entiendo que sea asi de complicado un programa neuronal, pero para esto no hay que complicarse tanto.

En este caso, las letras no estan distorcionadas, por lo que solo tenes que implementar un sistema de plantillas he ir recorriendo el largo de la palabra he ir viendo que plantilla de letra corresponde. no es tan complicado, lo que no quiere decir que sea facil.


Título: Re: Leer letras en imagenes
Publicado por: Hadess_inf en 20 Junio 2009, 00:52 am
Una cosa es saber el funcionamiento de un algoritmo que use las RNA para llegar a reconocer una letra, y otra muy distinta a copiar un codigo de una web que lo haga.

Si lo que deseas es solo que reconocer una letras sin saber como funciona este pues te sera muy facil (hace un tiempo vi un ejemplo de esto por planetsource, en realidad ahora no encuentro el link pero si se que esta ahi).

Si lo que deseas es programar el algoritmo pues supongo que se te complicara un poco puesto que tendras que aprender nociones, teorias y todo eso respecto a perceptron, backpropagation, etc ...


Título: Re: Leer letras en imagenes
Publicado por: sk8erboi en 20 Junio 2009, 01:14 am
???


Título: Re: Leer letras en imagenes
Publicado por: Hadess_inf en 20 Junio 2009, 03:44 am
???


:huh: :huh: :huh:
A que se debe ¿ ?
 :¬¬ :¬¬


Título: Re: Leer letras en imagenes
Publicado por: odeONeSs en 22 Junio 2009, 11:24 am
Si el fondo siempre es igual y el espacio entre caractacteres es el mismo, podrias cortar letra por letra aplicarle un algoritmo tipo md5 a los bits de la imagen de cada caracter y compararlos con una tabla que te hagas.
Tipo

A==> corresponde con el hash 1dd0e5bfc954bc46fe800952be7e2a69
a==> ....
B==> ...
ect..


Espero que te sirva

Saludos!