Article étudiant le lissage d'images par les moindres carrés. Application sur Matlab possible par son étude.
[...] Effectuons d'abord quelques rappels élémentaires : = u u 2 = 2 + 2 = u)2 + u)2 + 2 = u + 2 u g + g = + = = = 2 u u 2 u u 2 u u 2 u u + u = f 2 u u 2 u u = u u 2 u u = u Nous pouvons donc écrire que : Nous avons posé précédemment la norme du gradient 2 = u)2 + u)2 et le Laplacien = u + alors remplaçons ces termes dans la dernière équation : De plus, ϕ(t) = 1 + at avec a 0 et t 0 alors : a 1 a a2 = = et = + at 4(1 + at) + at En utilisant ce dernier résultat, nous obtenons donc : Il ne nous reste plus qu'à étudier le comportement de et de en fonction de t = 2 pour a fixé (différent de 0 sinon cela n'a pas d'intérêt). at 1+at at Si t = nous avons = a et 1 1+at = nous retrouvons un cas 2 identique à celui du cas isotrope. [...]
[...] La méthode utilisée ici est donc une méthode de gradient (Jacobi) et l”algorithme utilisé dans chaque programme est le suivant : initialisation : u0 = f , f Rn×m boucle des itérations p (arrêt défini en paramètre variable) pour i = n 1 et j = m 1 up+1 = i,j 1 ǫ h fi,j + ǫ1 (up i+1,j h2 p p + up i,j+1 + + ) fin pour fin boucle Voici un tableau exprimant le temps nécessaire en secondes pour le calcul de chacune des trois méthodes (tests effectués sur un Pentium IV à 2.60 Ghz avec 512 Mo de RAM) suivant le nombre d'itérations demandées (paramètres ǫb = 0.1 et ǫ1 = 0.01 ) avec trois images différentes : oeil.jpg méthode 1 méthode 2 méthode ombre.jpg méthode 1 méthode 2 méthode 3 fenetre.jpg méthode 1 méthode 2 méthode Par l'observation de ces trois tableaux, la méthode de lissage la plus rapide saute immédiatement aux yeux, il s'agit de la troisième (pratiquement un facteur de 10 gagné par rapport à la méthode numéro alors que nous faisons plus de calculs ! ! Pourquoi une telle différence de temps d'exécution pour la méthode numéro 3 sur les trois images prises en compte ? [...]
[...] Afin de calculer le gradient, nous utiliserons l'approximation des dérivées par leur forme centrée (meilleure formule ques les formes progressives ou régressives) de la manière suivante (avec = = h qui est la taille du pixel soit un carré) : ui+1,j ui,j+1 et La méthode des différences finies nous permet ainsi d'approximer l'opé rateur Laplacien = u + u de la manière suivante : 2 2 ui,j ui+1,j 2ui,j + 2 ui,j ui,j+1 2ui,j + et h h2 Alors + ui,j = fi,j devient finalement : ui+1,j + ui,j+1 4ui,j + + + ui,j = fi,j h2 ǫ1 ǫ1 ui,j 2 (ui+1,j + ui,j+1 + + ) = fi,j 2 h h 1+4 Nous obtenons ainsi une forme matricielle AU = F où matrice de lissage, est une matrice symétrique pentadiagonale de taille n m qui sont les dimensions de l'image à lisser. Notons que c'est une matrice creuse donc très intéressante pour le stockage Travaux La première étape, après avoir lu l'image, est de la normaliser puis de rajouter du bruit à l'aide du paramètre ǫb par exemple). Avant d'utiliser la méthode de lissage, nous normalisons l'image bruitée. [...]
[...] Il ne faut pas attendre non plus que cette restauration d'images permette de restaurer tout et n'importe quoi, meilleure sera la prise, meilleure sera l'image restituée. Suite aux applications effectuées sur différentes images, nous avons pu remarquer que le lissage non linéaire est de loin de meilleure qualité que le lissage isotrope. Ceci est dû au fait que le paramètre ǫ est constant lors du lissage linéaire et variable pour le lissage non linéaire (anisotrope). Une idée naturelle serait de détecter d'abord les contours afin de préserver les détails au niveau de ceux-ci puis de lisser les zones autour de ces détails. [...]
[...] Sur les images obtenues après lissage, on remarque que le lissage non linéaire conserve bien les contours c'est-à-dire les zones de fort gradient. Cependant, le facteur n qui détermine ainsi a et ǫ2 est important car ce sont eux qui permettent de conserver encore mieux les contours et d'enlever toutes les impuretés dans les zones homogènes Iso Eps1= Iso Eps1= Iso Eps1= Aniso Eps1= 0.05 Aniso Eps1= 0.05 Aniso Eps1= 0.05 Iso Eps1= Aniso Eps1=1 Aniso Eps1=1 Aniso Eps1=1 Aniso Eps1=0 Aniso Eps1= 0.25 Aniso Eps1=0 Aniso Eps1= 0.25 Aniso Eps1=0 Aniso Eps1= 0.25 Fig Lissages isotropes et anisotropes Image originale 1 Image bruitée 1 coeff lissage Eps1= 0.25 coeff lissage Eps2= 0.0043347 coeff lissage 115.3473 avec n=4 Nb itérations = 300 Temps = 36.531 s Image originale 1 Image bruitée 1 coeff lissage Eps1= 0.25 coeff lissage Eps2= 0.0046155 coeff lissage 108.3297 avec n=4 Nb itérations = 300 Temps = 36.828 s Lissage non linéaire Lissage isotrope Évolution de J Évolution de J Lissage non linéaire 0 Évolution de J Lissage isotrope Évolution de J Fig Autres exemples de lissages isotropes et anisotropes Conclusion Ω Ω Avec ce lissage, nous gommons les petites imperfections mais les contours recherchés sont préservés et mis en évidence. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture