martes, 30 de junio de 2015

Un bot para el juego Eye-Test (II)

Y el golpe de inspiración llegó. ¿Y cómo? Gracias al método de escritura personal descrito en el libro "Escritura y Creatividad" de Mark Levy Parecía difícil encontrar una solución tal como había enfocado el problema, pero la solución llegó. Este fue el pensamiento que me llevó a ella:
El problema esta en esos píxeles de distinto color Si fuera únicamente de dos colores no habría problema, perto asdi si. Este enfoque FSE basada en histogramas en contar colores y elegir uno. Una solución seria filtrar las imagen inicial y tranafoirmarla a 2 o 3 colores. Pero tampoco valfderia el problema gordo esta en los píxeles de las fronteras. Tal vez haciendo un muestreo se podría solucionar, o cambiando los colores. Asignando a un píxel el color de su izquierda.. No porque se desplazarían al final Eso no vale que más podríamos hacer....... Más más a ver.... Una transformación previa Esa creó que seguía la solución Un preprocesado. Eliminar de alguna manera los bordes, pero como identificarlos... Tal vez aplicando un filtro de detección de bordes y luego poniéndolos blancos Esa parece una buena solución y año mejor se puede implementar
(lo escribí del tirón y sin mirar la pantalla, por eso hay tantos errores)

Sí, la clave estaba en la detección de los bordes. Un preprocesamiento previo, un filtrado de la imagen, que me hiciera deshacerme de ese degradado de los bordes. Si luego sustituía los pixels de la imagen original por los bordes que había detectado me quedarían solo los colores en cuestión, sin degradados. Esa fue la solución que he implementado y que ha funcionado.

Bordes detectados


Borde sustraido de la imagen original

Como podéis ver en el siguiente vídeo ahora el robot es capaz de llegar a cualquier puntuación. Lo configuré solo para que llegara a 300 puntos pero podía haber estado infinito.



Os dejo con el código del programa implementado en Python. 

0 comentarios:

Publicar un comentario