En el intercambio de pila de TeX, hemos estado discutiendo cómo detectar "ríos" en los párrafos de esta pregunta .
En este contexto, los ríos son bandas de espacios en blanco que resultan de la alineación accidental de espacios entre palabras en el texto. Dado que esto puede distraer bastante al lector, los ríos malos se consideran un síntoma de una tipografía pobre. Un ejemplo de texto con ríos es este, donde hay dos ríos que fluyen en diagonal.
Hay interés en detectar estos ríos automáticamente, de modo que puedan evitarse (probablemente mediante la edición manual del texto). Raphink está progresando en el nivel de TeX (que solo conoce las posiciones de los glifos y los cuadros delimitadores), pero estoy seguro de que la mejor manera de detectar ríos es con algo de procesamiento de imágenes (ya que las formas de los glifos son muy importantes y no están disponibles para TeX) . He intentado varias formas de extraer los ríos de la imagen de arriba, pero mi simple idea de aplicar una pequeña cantidad de desenfoque elipsoidal no parece ser lo suficientemente buena. También probé un poco de radónHough transformado basado en filtrado, pero tampoco llegué a ninguna parte con esos. Los ríos son muy visibles para los circuitos de detección de características del ojo humano / retina / cerebro y de alguna manera pensaría que esto podría traducirse en algún tipo de operación de filtrado, pero no puedo hacer que funcione. ¿Algunas ideas?
Para ser específicos, estoy buscando alguna operación que detecte los 2 ríos en la imagen de arriba, pero no tenga demasiadas detecciones de falsos positivos.
EDITAR: endolith preguntó por qué estoy buscando un enfoque basado en el procesamiento de imágenes dado que en TeX tenemos acceso a las posiciones de glifos, espacios, etc., y podría ser mucho más rápido y más confiable usar un algoritmo que examine el texto real. Mi razón para hacer las cosas al revés es que la formade los glifos puede afectar cuán notable es un río, y a nivel de texto es muy difícil considerar esta forma (que depende de la fuente, la ligadura, etc.). Para ver un ejemplo de cómo la forma de los glifos puede ser importante, considere los siguientes dos ejemplos, donde la diferencia entre ellos es que he reemplazado algunos glifos por otros de casi el mismo ancho, de modo que un análisis basado en texto consideraría ellos igualmente buenos / malos. Tenga en cuenta, sin embargo, que los ríos en el primer ejemplo son mucho peores que en el segundo.
ImageLines[]
desde Mathematica, con y sin preprocesamiento. Supongo que esto técnicamente está usando una transformación Hough en lugar de Radon. No me sorprenderá si el preprocesamiento adecuado (no probé el filtro de dilatación sugerido de datageist) y / o la configuración de parámetros pueden hacer que esto funcione.