Detectar carácteres escritos con el mouse

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Detectar carácteres escritos con el mouse

Mensaje por Jonny »

Hola,

Quizás, para lo que os planteo, necesito saber como resolverlo en general, no en AutoIt, pues la dificultad no es el lenguaje en el que se programe, como veréis.

Resulta, que tengo que hacer un programa en el que se use el ratón a modo de pluma, de forma que como si la pantalla fuera una hoja y el ratón una pluma, el usuario pueda escribir, y se vea en la pantalla reflejado lo que va escribiendo, a medida que lo hace.

Eso quizás no tiene mucha dificultad, pues con alguna función "pixel" o GDI se haría más o menos bien.
La cosa es, que (y aquí sí viene lo difícil) el programa tendría que reconocer los carácteres que va escribiendo el usuario.

;)

Se me ocurren formas de hacerlo: Desde comparar formas hechas con el ratón, con patrones de carácteres, hasta ir analizando las formas que hace el ratón (por sus coordenadas por ejemplo) y determinar que carácter podría ser. Pero (sobre todo lo segundo) me parece que sería bastante complicado. Y además, no veo una forma fiable de hacerlo, pues no se trata de carácteres hechos por el ordenador, si no escritos a mano, con lo que eso supone: que nunca tendrán el mismo tamaño, forma...
:)

Y ese es el problema.
¿Cómo identificar el carácter que se dibuja con el mouse, se os ocurre alguna forma?.
Yo creo que no habría que hacer uso de GDI para eso (identificar el carácter dibujado), pues podría hacerse basándose en las coordenadas en las que está el ratón ¿no??. Pero lo veo demasiado complicado.

Y Comparar la forma dibujada con un patrón, también lo veo difícil, pues el patrón debería ser un carácter escrito en ordenador por ejemplo, y es muy difícil que se pareciera a lo que hiciera el usuario... (quizás ahí sí habría que tirar más de GDI) aunque no lo tengo tan claro).

Se aceptan sugerencias ;).

Salu2!
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Detectar carácteres escritos con el mouse

Mensaje por BasicOs »

Hay varias librerías de OCR, lo ideal sería sobre un fondo blanco escribir con el ratón, y cuando esté listo, dar a un botón reconocer, o bien cuando haya un espacio entre lo escrito y lo siguiente (espacios).

Lo puedes capturar con una captura de pantalla y luego reconocer, cuando el ratón no esté sobre el texto.
Aparte puedes hacer un programa que capture las coordenadas del ratón en cada momento, y a través de ello vaya generando unas lineas con las coordenadas. La idea es que estas lineas generadas desde coordenadas a pixeles crearían una nueva imagen, puede ser en una esquina de la pantalla donde se refleja esto, también hacer un sharpen y eliminar los vacios dentro de lineas. Una vez listo, tendrías que pasarle un OCR. Buscando OCR en el foro encuentras varios "Reconocimientos ópticos de caracteres", o bien con algún programa externo que uso el dato del Autoit.
:smt028 :smt028 :smt028
Saludos
PD: ejemplos de buscar imágenes (no de reconocimiento), http://www.autoitscript.com/forum/topic ... agesearch/
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: Detectar carácteres escritos con el mouse

Mensaje por Jonny »

La idea no era usar OCR. Porque bueno, se trataba de que el programa supiera que letra se hacía con el mouse, justo al terminar de hacerla, no que reconociera una palabra por ejemplo.

Pero además, el problema es que no habría que reconocer un carácter o palabra escrito por un ordenador o máquina de escribir, si no, manuscrito, y no se hasta que punto sería fiable eso.

Buscar imágenes, creo que tendría el mismo problema.

Yo creo, que debería hacerse monitorizando el mouse por sus coordenadas, y dependiendo de estas ir formando el carácter.

es un poco como adivinar que se va a escribir, mientras se ve a alguien como escribe.

Lo que no se me ocurre como programar eso...

Por ejemplo, sí, se me ocurre que una línea recta de píxeles en vertical, puede ser una i. Pero al ser manuscrito no se como de grande la hará el usuario (por ejemplo). Quizás, la "i", sería muy fácil. Pero hay otros carácteres, en los que sería bastante más difícil que el programa adivine carácter se ha dibujado.

La idea es hacer una especie de soft educativo, para aprender a escribir. La forma de mostrar luego el carácter dibujado sería lo de menos, hay muchas formas...

Salu2!
Responder