II.2.2 Filtrage Numérique : [34]
Pour améliorer la qualité visuelle de
l'image, on doit éliminer les effets des bruits (parasites) en lui
faisant subir un traitement appelé filtrage. Généralement,
son principe consiste à remplacer la valeur de pixel central par une
combinaison prédéfinie de valeurs des pixels adjacents, soit par
la convolution de l'image brute par un filtre prédéfini, ou par
l'application des méthodes qui cherchent la valeur la plus
homogène par rapport aux éléments de la fenêtre.
On distingue généralement quatre types de filtres :
§ Les filtres passe-bas
§ Les filtres passe-haut
§ Les filtres passe-bande
§ Les filtres directionnels
II.2.2.1 Les filtres passe-bas :
Consistant à atténuer les composantes de l'image ayant une haute
fréquence. Ce type de filtrage est généralement
utilisé pour atténuer le bruit de l'image, c'est la raison pour
laquelle on parle habituellement de lissage.
II.2.2.1.1 Les filtres linéaire:
Nous avons utilisé trois types de filtre passe
bas linéaire. Ces derniers sont des filtres qui se basent sur le
produit de convolution et dont le principe est de remplacer la valeur du pixel
central par la moyenne des valeurs des pixels avoisinantes. La
différence entre les trois types de filtre réside dans la
distribution des coefficients de la matrice du filtre (masque).
Filtre moyenneur
|
Filtre conique
|
Filtre pyramidal
|
|
|
|
Algorithme
Début
Charger l'image (IM [i][j])
Lire la taille du masque T
Définir le masque M(T,T)
Pour i= (T/2) jusqu'à
(hauteur-T/2)
Pour j= (T/2) jusqu'à
(largeur-T/2)
K1=0 ; // Ligne du masque
Somme =0
Pour n= i-(T/2) jusqu'à
(i+(T/2)+1)
K2=0 ; //colonne du
masque
Pour m= j-(T/2) jusqu'à
(j+(T/2)+1)
Data[K1][K2]=IM[n][m] ;
K2++
fin
K1++
fin
Pour K=0
jusqu'à T
Pour L=0 jusqu'à T
Somme=Somme + (data [K][L] * masque[K][L])
R=Somme / (Somme des coefficients de masque)
IMF[i][j]=R
fin
fin
fin
fin
Affichage d'IMF ;
Fin
Résultats :
|
-
|
|
|
Image originale
|
Filtre moyenneur
|
Filtre pyramidal
|
Filtre conique
|
· Défauts : d'après ce
qu'on a obtenu comme résultats, nous avons pu en déduire quelques
défaut des filtres linéaires tels que :
o Certaines fréquences détruites.
o Images dégradée.
o Contours altérés.
o Plus la taille du filtre augmente, plus l'image devient plus
floue.
II.2.2.1.2 Les filtres non-linéaires :
Le médian :
L'idée est simple : prenons un ensemble de pixels au voisinage
d'un pixel donné. Rangeons les niveaux de gris de cet ensemble de pixels
en ordre croissant et choisissons le niveau de gris qui arrive en position
médiane. Ce niveau de gris sera celui du pixel donné :
|
|
|
|
|
|
|
|
19
|
23
|
42
|
|
|
|
11
|
25
|
31
|
|
|
|
60
|
25
|
12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19
|
23
|
42
|
|
|
|
11
|
150
|
31
|
|
|
|
60
|
25
|
12
|
|
|
|
|
|
|
|
Médiane
11
|
12
|
19
|
23
|
25
|
31
|
42
|
60
|
150
|
Bruit
Algorithme :
Début
Chargement de l'image (IM[i][j]) ;
Lire la taille du masque (T) ;
Pour i=T/2 jusqu'à
hauteur-(T/2)
Pour j=T/2 jusqu'à
largeur-(T/2)
K=0 ;
Pour l= i-(T/2) jusqu'à
i+(T/2)+1
Pour m= i-(T/2) jusqu'à
i+(T/2)+1
V[K]=IM[l][m] ;
K++ ;
fin
fin
Triage croissant de (V[K]) ;
IMF[i][j]=V[T/2] ;
fin
fin
Fin
Résultats :
|
|
Image originale
|
Filtrage par la méthode de
médiane
|
II.2.2.2 Les filtres passe-haut :
À l'inverse des passe-bas, les filtres passe-haut atténuent les
composantes de basse fréquence de l'image et permettent notamment
d'accentuer les détails et le
contraste, et de renforcer les contours.
Ces filtres ont le même principe que les filtres passe-
bas, la seule différence est dans les coefficients des masques qui
peuvent prendre des valeurs négatives.
Filtre 1
|
Filtre 2
|
Filtre3
|
|
|
|
Résultats :
|
|
|
|
Image originale
|
Filtre (1)
|
Filtre (2)
|
Filtre (3)
|
· Défauts :
Cette classe des filtres est
applicable que sur les images non bruitées.
II.2.3 Négative d'image : Il
s'agit là tout simplement de mettre le complément à 255 de
chaque composante de tous les pixels de l'image. Le résultat obtenu est
appelé négatif.
Algorithme:
Début
Chargement de l'image (image [i][j])
Pour i=0 jusqu'à
hauteur
Pour j=0 jusqu'à largeur
IMinv[i][j]=255-image[i][j];
fin
fin
Fin
Résultat :
|
|
Image originale
|
Image négative
|
|