Trouver un contour avec un filtre gaussien

Dans le présent document, nous allons détecter le contour d'une clé USB photographiée en vue d'oiseau. L'intérêt ? Proposer un exemple concret d'utilisation des filtres matriciels ou logiques utilisés en traitement d'image.

L'exemple

Image de base

Nous prendrons l'image suivante qui n'est clairement pas parfaite. En effet, la prise de vue fait apparaître un fond dégradé qui empiette sur le domaine de couleur de l'objet.

En améliorant la prise de vue, on faciliterait clairement l'analyse automatique de l'image. On garde malgré tout cet exemple, car il n'est pas totalement dégénéré.

Avec une photographie en clair-obscur, on peut avoir un objet assez noir sur un fond assez blanc...

Clé USB en vue d'oiseau

Isoler la couche de couleur

L'analyse de l'histogramme de l'image montre qu'il est intéressant de travailler sur la couche de rouge. Pourquoi ? Parce qu'il y a beaucoup de rouge sombre et ça va renforcer notre objet. En isolant la couche verte ou bleue, on pourrait encore voir la puce électronique dans la clé ou la transparence du capuchon, bref des couleurs trop proches de notre arrière-plan.

Pour chaque pixel de l'image, nous allons recopier le rouge dans le vert et le bleu. C'est un artifice logiciel qui permet de rendre compte à l'utilisateur que notre image est désormais considérée comme n'étant qu'une image de 256 couleurs de gris.

Isolation de la couche rouge

Binarisation de l'image

Il faut maintenant mettre l'image en noir (la clé USB) et blanc (le fond).

Pour cela, on binarise violemment : toute valeur de gris inférieure à un seuil devient noire, ou blanche si supérieure.

L'analyse des contours de l'objet montre qu'un seuil de 135 serait pertinent.

Mise en noir et blanc de la clé USB

Elimination des imperfections

On voit qu'il y a des petits points blancs en plein milieu de zones noires. Ce n'est pas forcément génant, mais il existe deux techniques pour les effacer :

Utiliser un filtre passe-bas : le pixel devient la moyenne des couleurs qui l'environnent. On perd le noir et le blanc en faveur du gris, mais on peut rebinariser juste derrière avec un seuil de 128. Cette méthode permet de conserver le texte d'origine de la clé USB (marque et capacité).

Effet du filtre passe-bas

Effectuer une fermeture : on erode le blanc pour le dilater ensuite. C'est une technique connue et standard, mais le choix de l'outil de balayage est important.

Effet de la fermeture

Nous exploiterons la fermeture, car la marque n'est pas un élément déterminant pour la forme de la clé USB. De plus, cela nous permet de conserver un bon aspect de la partie qui rentre dans la prise.

Détection du contour

Le contour se détecte normalement avec des opérateurs dédiés, mais il s'avère dans notre cas qu'on peut avoir un très bon résultat avec un filtre laplacien. A la base, le filtre laplacien sert à créer du flou et ainsi limiter le bruit de l'image (les couleurs abérrantes qui altèrent la qualité de l'image). De plus, ce flou permet à d'autres filtres d'être mieux calculés.

En choisissant un rayon de 2 pixels et un σ=0.5, il nous est possible de détecter les contours. Tout se joue sur la valeur de sigma.

C1 C2 C3 C4 C5
0 0 0,0002 0 0
0 0,0117 0,0862 0,0117 0
0,0002 0,0862 0,6366 0,0862 0,0002
0 0,0117 0,0862 0,0117 0
0 0 0,0002 0 0

Effet du filtre laplacien

Binarisation finale

L'image obtenue est en noir avec des contours blancs.

Pour avoir les bonnes couleurs, il suffit d'inverser les couleurs et d'appliquer un seuil pour effacer les gris résultants du filtre gaussien.

Contour final de l'image

Effacement de la profondeur

En appliquant un pot de peinture noir puis blanc dans les coins, on efface une partie des traits qui ne nous intéressent pas.

Résultat final de l'opération

Généralisation

Si vous avez des images déjà en noir et blanc, vous pouvez ressortir les contours comme ci-précédemment. Ca marche bien avec des partitions, comme par exemple :

Contours sur une image naturellement en noir et blanc

Avez-vous trouvé l'information que vous cherchiez ? Votre retour d'expérience sur le site nous intéresse.

Dernière modification le 31 janvier 2011 à 21:36