Équipe IMAGE - Le projet Pantheon

Tutoriel : Supprimer les lignes droites dans les images

Identification

Ressources

I. Objectif

Le but est de supprimer les lignes fines et approximativement droites dans des images. Par exemple, dans l'image en niveaux de gris ci-dessous, on cherche à supprimer toutes les grandes lignes horizontales qui composent le tableau et les lignes de séparation.

L'image originale.L'image résultat.

II. Méthode

Cette méthode n'est adaptée qu'aux images binaires ou en niveaux de gris parce qu'elle ne permet pas de conserver les couleurs initiales dans le cas d'images couleur.

Pour supprimer les lignes horizontales de l'image, la méthode utilise un avec comme élément structurant une ligne horizontale.

La taille de l'élément structurant définit la longueur des lignes qui seront supprimées. Le chapeau haut-de-forme supprime toutes les lignes horizontales plus grandes que la taille de la ligne utilisée comme élément structurant.

Parce que l'image obtenue est une image des différences entre l'image originale et l'image de fermeture, il faut ensuite ajouter la moyenne de la valeur des pixels de l'image de fermeture de manière à recouvrer les couleurs initiales.

II.1 Suppression des lignes horizontales noires

Le chapeau haut-de-forme noir avec un élément structurant linéaire horizontal de demi-taille 7 permet de supprimer les lignes horizontales de longueur supérieure à 15 pixels (=2*7+1).

Un chapeau haut-de-forme noir correspond à la différence entre la fermeture (soit l'érosion de la dilatation de l'image) d'une image et l'image elle-même. Ici, nous prenons l'inverse du résultat pour obtenir des valeurs de différence négatives, soit l'image moins la fermeture.

Le traitement correspond donc à l'opération :

g(x,y) = f(x,y) - εHH(f(x,y)))
pany2pan bordereau.png bordereau.pan
plineardilatation 0 0 7 bordereau.pan tmp1.pan
plinearerosion 0 0 7 tmp1.pan bordereau1-1.pan
psub bordereau.pan bordereau1-1.pan bordereau1-2.pan
bordereau1-1.pan : Après la fermeture de l'image.
bordereau1-2.pan : Après la différence entre l'image et sa fermeture.

II.2 Restauration de l'échelle des niveaux de gris initiale

Pour recouvrer les niveaux de gris initiaux, il suffit d'ajouter à chaque pixel de l'image obtenue la moyenne des niveaux de gris de l'image de fermeture. On obtient alors l'image finale.

pmeanvalue bordereau1-1.pan tmp2.pan
paddval tmp2.pan bordereau1-2.pan tmp3.pan
pclipvalues 0 255 tmp3.pan bordereau2.pan
bordereau2.pan : Après l'ajout de la moyenne.

II.3 Variante: Suppression des lignes verticales noires

Le même plan permet d'éliminer les lignes verticales de longueur supérieure à 21 pixels. Il suffit pour cela de changer l'élément structurant par une ligne verticale de demi-taille 10.

plineardilatation 90 0 7 bordereau.pan tmp1.pan
plinearerosion 90 0 7 tmp1.pan bordereau1-1.pan
psub bordereau.pan bordereau1-1.pan bordereau1-2.pan

pmeanvalue bordereau1-1.pan tmp2.pan
paddval tmp2.pan bordereau1-2.pan tmp3.pan
pclipvalues 0 255 tmp3.pan bordereau3.pan
ppan2png bordereau3.pan bordereau.png
bordereau3.pan : Après la suppression des lignes verticales.

III. Le script Pandore complet


Projet Panthéon
Equipe Image Laboratoire GREYC
UMR CNRS 6072 - ENSICAEN - Université de Caen, France
Page modifiée le 22 December 2014