Obligement - L'Amiga au maximum

Vendredi 17 novembre 2017 - 18:10  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Dossier : Le traitement d'images numériques - contour d'objet
(Article écrit par Barrou Diallo et extrait d'Amiga News - octobre 1996)


Après les quelques explications du mois dernier sur les notions de base du traitement d'images, continuons notre longue route sur les chemins sinueux qui mènent à la reconnaissance des formes et à l'interprétation automatique des scènes.

On entend par "scène", un ensemble d'objets fixés (numérisés) par un procédé quelconque sur un support numérique. En fait, les auteurs ne se sont pas véritablement penchés sur les objets eux-mêmes mais sur leurs contours. En effet, l'idée sous-jacente n'est pas triviale, bien que l'idée même d'un dessin passe dans un premier temps par celle de contours. L'extraction de ces derniers nécessite des traitements qui se sont révélés de plus en plus complexes. Nous essaierons ici d'en tirer les étapes principales et de montrer leur intérêt primordial dans tous les types d'imagerie.

Définitions des contours

Comment définir un contour ? Une frontière entre zones homogènes ? Oui, mais la notion de frontière est abstraite. Est-ce seulement une différence de couleur ou d'intensité ou doit-on tenir compte des caractéristiques intrinsèques des objets qui composent l'image ?

L'image des dérivées

Traitement images
Figure 1

Nous avons vu qu'une image peut être définie mathématiquement comme une fonction qui associe à un couple (x, y) de coordonnées spatiales une valeur d'intensité. La première démarche consiste à continuer ce raisonnement et à calculer ce qu'on appelle le gradient de l'image (en d'autres termes les dérivées partielles). Ces approches sont appelées méthodes dérivatives. Étant donné qu'une image est un signal discret, l'application de transformations mathématiques doit être effectuée dans un espace du même type. On définit donc les dérivées par :

dF/dy = DF/Di = Fi(i,j) = F(i+1) - F(i,j) (equ 1)

et

dF/dx = DF/Dj = Fj(i,j) = F(i,j+j) - F(i,j) (equ 2)

avec F(i,j) la valeur d'un pixel de l'image F au point (i,j)

En d'autres termes, on définit la dérivée discrète d'une image F par la différence deux à deux des valeurs d'un pixel avec son voisin. Cette approximation s'appelle un schéma dérivatif et permet de simuler la dérivée (ou gradient) d'une image dans la direction x (equ 1) ou y (equ 2).

Des dérivées au vecteur gradient

Pourquoi toutes ces opérations ? Tout simplement parce qu'il paraît logique que plus la différence d'un pixel à son voisin est importante et, plus, la probabilité d'être sur un bord d'objet est forte (notion de transition). En fait, un bord est défini par la combinaison des dérivées de l'image en x et de celles en y (Cf. figure 2). Ce vecteur gradient, pour devenir utilisable doit être normé de la façon suivante :

|GF(i,j)| = max {|Fj(i,j)| , |Fi(i,j)| } (equ 3)

ou

GF(i,j)| = sqrt ( Fj(i,j)**2 , Fi(i,j)**2 ) (equ 4)

Sqrt est la fonction racine carrée et ** signifie "puissance".

Traitement images
Figure 2

Ces vecteurs gradients sont donc proportionnels aux variations d'intensité de l'image et donc reflètent les frontières des objets. Trouver les frontières des objets est donc simple : il suffit, comme nous l'avons vu plus haut de calculer les différences des valeurs de l'image, de les élever au carré, d'effectuer la somme des composantes x et y et d'extraire la racine carrée de cette somme (equ 4).

Cette simplicité dans l'application de ces opérateurs cache malheureusement deux principales lacunes : d'une part, la présence de bruit dans l'image peut perturber ces opérateurs et, d'autre part, suite aux définitions, le calcul des gradients sur le bord de l'image est impossible. Pour ce dernier cas, les valeurs des dérivées au bord de l'image sont souvent approximées par les valeurs de l'image elle-même ou par la dérivée des pixels suivants. En ce qui concerne les problèmes de sensibilité au bruit, d'autres opérateurs sont nécessaires pour faire face à cette difficulté.

Des opérateurs plus robustes

Le choix d'un opérateur n'est pas simple et bien souvent un compromis doit être trouvé entre rapidité d'exécution, place mémoire utilisée et qualité du résultat. Les opérateurs gradient présentés plus haut sont rapides et économes en mémoire mais souffrent d'une sensibilité au bruit de l'image.

Nous avons étudié dans l'article précédent les filtres dits de lissage (ou passe-bas) comme le filtre moyen ou médian. C'est donc dans cette optique de combinaison de l'idée d'un signal épuré du bruit d'acquisition et d'une recherche des objets par leurs contours que les études ont mené à des opérateurs plus complexes. L'opérateur "Ndif" est un exemple, il peut être formulé par le passage de deux masques qui décrivent respectivement les estimations des composantes x et y des vecteurs gradients de l'image :

        ( 0 1 0 -1 0 )      ( 0 1 1 1 0 )
        ( 1 2 0 -2 -1 )     ( 1 2 3 2 1 )
 Nx =   ( 1 3 0 -3 -1 ) Ny= ( 0 0 0 0 0 )
        ( 1 2 0 -2 -1 )     ( -1 -2 -3 -2 -1)
        ( 0 1 0 -1 0 )      ( 0 1 1 1 0 )

L'image de départ convoluée avec ces deux masques donne deux images : celle des gradients x et celles des gradients y, et comme plus haut, il suffit de calculer la norme du gradient et d'extraire les maximums locaux pour obtenir les contours.

Les opérateurs du 2e ordre

Tous les opérateurs présentés jusqu'ici sont dits du premier ordre, mais il est possible, sans entrer dans les méandres des grandes théories du traitement de signal de calculer sur l'image, des dérivées secondes (ou laplaciens) et, de ce fait d'extraire des contours plus précis en détectant leurs passages par zéro.

Le Laplacien d'une image F est défini par :

DF(x,y) = ( d**2 F / d x**2 ) + ( d**2 F / d y**2 )

Étant donné que nous travaillons sur un signal échantillonné (discret), le calcul du laplacien peut s'effectuer par le passage du masque suivant :

        ( 0 -1 0 )
 L =    ( -1 4 -1 )
        ( 0 -1 0 )

A partir de cette image des dérivées secondes, il faut simplement rechercher, sur l'image des gradients, tous les endroits oÙ les valeurs d'un pixel à l'autre passent la barre du zéro (dans un sens ou dans l'autre). Ces endroits représentent les bords détectés.

Les opérations morphologiques

Pour terminer sur l'extraction de contours, une méthode assez simple permet d'obtenir des contours fermés d'objets en utilisant la morphologie mathématique. Cette approche du traitement d'images utilise un masque (appelé élément structurant) qui détermine les pixels du voisinage courant qui doivent subir l'opération. Sans vouloir rentrer dans les détails, voici les trois opérations successives à effectuer pour obtenir ce fameux gradient morphologique.

L'érosion morphologique

L'érosion d'une image consiste à calculer dans l'environnement de l'élément structurant "l'inf" des valeurs (la valeur minimum). Cette opération appelée érosion, diminue le volume des formes et permet de "lisser" l'image ce qui revient à éliminer les artefacts d'acquisitions et les points aberrants.

La dilatation morphologique

La dilatation d'une image, au contraire de l'érosion, calcule le "sup" de l'environnement défini par l'élément structurant. Cette valeur maximum sur le voisinage du pixel courant permet d'augmenter le volume des objets.

La définition d'un contour par ces deux opérations peut se résumer au calcul de la soustraction de l'image de l'érosion à celle de la dilatation. On obtient alors, une approximation des contours internes et externes des objets de l'image originale (Cf. figure 3).

Traitement images
Figure 3

En résumé

Contours Internes = Image Originale - Image Érodée
Contour Externes = Image Originale - Image Dilatée
Image des contours = Image Dilatée - Image Érodée

Le seuillage des images

Par définition, une image des contours doit comporter deux classes : le fond (par exemple en noir) et les traits des contours (en blanc). Pour cela, il faut seuiller les images résultats à un seuil défini par l'utilisateur afin de partitionner l'image dans ces deux groupes de pixels.

Conclusion

Après avoir étudié quelques méthodes de détection de contours, l'une des prochaines étapes sera de fournir la liste des objets présents dans l'image et donc de "coder" les contours fermés sous forme de listes de points. Une fois cette liste de points établie, l'image sera représentée par des ensembles clairement définis et pourra subir des débuts de reconnaissance des formes.


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]