Tuesday, October 21, 2014

Programación lúdica: más sobre el filtro "Máximo"


En el artículo pasado platiqué la idea de hacer un programa que limpiara, de alguna manera, un documento que me interesa, pero que viene como escrito en súper-negritas. Usé el filtro "máximo" (Federico Mena, uno de los que han trabajado en Gimp, si la memoria no me falla), me dijo que usara el filtro "erosión", pero es el mismo que usé. Federico sugirió bajarle el radio de la vecindad. Estaba usando uno de 5x5 (véase la siguiente imagen):


Así que reduje al mínimo la vecindad del filtro y así "erosionar" menos la imagen. Usé el filtro 3x3 (ver siguiente imagen):



Hice una prueba con ambos filtros, con la página 13 del documento y esto fue lo que hallé (presento las tres versiones, un fragmento de la imagen original, la del filtro 5x5 y la del filtro 3x3, de arriba a abajo).



Como puede verse, usando el filtro con su mínima vecindad, hallé que la imagen era más legible aunque de todas maneras, la lectura es complicada de hacer.

En un afán por resolver esto, decidí pasar el archivo a PDF y procesarlo con un reconoceedor de caracteres óptico (OCR) en línea (http://www.onlineocr.net/). El resultado fue éste (se muestra sólo un fragmento):



Como puede verse, el resultado de la conversión es desastroso. Meditando sobre el asunto, probablemente haya que usar diversos filtros para procesar la imagen y uno solo, como este filtro, que "erosiona" la imagen, no es suficiente.

Sin embargo, Vivaldi González (así se llama, es verdad), uno de los mejores estudiantes que he tenido, amén de ser un tipo muy abusado, me esribió por Facebook indicándome lo siguiente, lo cito:

De tu problema con las imágenes en super negrita, imagina una letra "t", la línea vertical y horizontal deberán abarcar 3 pixeles de ancho normalmente (por decir algo). Cuando están remarcadas en negrita estas proporciones se modifican (duplican) por sugerir algo. Lo que yo sugiero que hagas es algo así como: Imprimir 5 veces en un acetato el texto, cada acetato recorrerlo ciertos pixeles, uno en cada dirección uno lo dejas sin mover.  Habrá una especie de intersección en algún punto, aquellos pixeles que no intersectan se volverán blancos. Eso dará una apariencia de adelgazar las letras (creo yo).

¿Cómo ven esta idea? La he meditado pero no me parece funcional. Pongo un fragmento de una de las cuartillas originales (con zoom), para ue vean cómo se ven las palabras de forma original.


Se aceptan sugerencias...

No comments: