Au cours de l'échange de piles TeX, nous avons discuté de la façon de détecter les "rivières" dans les paragraphes de cette question .
Dans ce contexte, les rivières sont des bandes d'espaces blancs résultant d'un alignement accidentel d'espaces inter-mots dans le texte. Comme cela peut être assez dérangeant pour un lecteur, les mauvaises rivières sont considérées comme un symptôme d'une mauvaise typographie. Celui-ci est un exemple de texte avec des rivières, où deux rivières coulent en diagonale.
Il est intéressant de détecter ces rivières automatiquement, afin de les éviter (probablement par édition manuelle du texte). Raphink fait quelques progrès au niveau de TeX (qui ne connaît que les positions des glyphes et les cadres de sélection), mais je suis convaincu que le meilleur moyen de détecter les rivières est de traiter certaines images (les formes de glyphes étant très importantes et non disponibles pour TeX) . J'ai essayé diverses méthodes pour extraire les rivières de l'image ci-dessus, mais ma simple idée d'appliquer une petite quantité de flou ellipsoïdal ne semble pas suffisante. J'ai aussi essayé du radonLe filtrage basé sur la transformation de Hough, mais je n’ai rien obtenu non plus. Les rivières sont très visibles pour les circuits de détection des caractéristiques de l'œil humain / de la rétine / du cerveau et je penserais que cela pourrait se traduire par une sorte d'opération de filtrage, mais je ne parviens pas à le faire fonctionner. Des idées?
Pour être précis, je recherche une opération qui détectera les 2 rivières dans l’image ci-dessus, mais n’aura pas trop d’autres détections de faux positifs.
EDIT: endolith m'a demandé pourquoi je poursuivais une approche basée sur le traitement d'images, étant donné que dans TeX, nous avons accès aux positions des glyphes, aux espacements, etc. Ma raison de faire les choses dans l'autre sens est que la formedes glyphes peut avoir une incidence sur la perception d’une rivière et, au niveau du texte, il est très difficile d’envisager cette forme (qui dépend de la police, de la ligature, etc.). Pour un exemple de l'importance de la forme des glyphes, considérons les deux exemples suivants. La différence est que j'ai remplacé quelques glyphes par d'autres de la même largeur, de sorte qu'une analyse basée sur le texte prendrait en compte: eux aussi bien / mauvais. Notez cependant que les rivières dans le premier exemple sont bien pires que dans le second.
ImageLines[]
de Mathematica, avec et sans prétraitement. J'imagine qu'il s'agit techniquement d'une transformation de Hough plutôt que de radon. Cela ne me surprendra pas si le prétraitement approprié (je n'ai pas essayé le filtre de dilatation suggéré par le datagraphe) et / ou les réglages de paramètres peuvent réussir ce travail.