Leer letras en imagenes

Iniciado por elmaro, 31 Marzo 2009, 01:19 AM

0 Miembros y 2 Visitantes están viendo este tema.

elmaro

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.

elmaro

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.

KJD

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.
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???

elmaro

Cita de: 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.

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.



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

Hadess_inf

Vas a tener que usar inteligencia artificial para llegar a lo que deseas.

KJD

#5
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.
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???

elmaro

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.


KJD

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
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???

elmaro

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!

Gorky

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.