Filtrage des images
Filtrage
L'objectif du filtrage est:1. D’ améliorer la qualité visuelle de l’image
Par le lissage: Atténuer le bruit
2. D’extraire les structure de l’imagePar la détection des contours: Détecter des
variations brusque entre pixels
• Deux types de filtrages :
Linéaire
Non-linéaire
Filtrage
Le bruit dans l’image peut-être
• Bruit additif
• Bruit multiplicatif
• Bruit convolutif
Bruit additif
• principaux types de bruits
• Uniforme : chaque pixel est modifié par l’ajout d’une valeur aléatoire
• Impulsionnel : quelques pixels prennent desvaleurs complètement aléatoires
Filtrage linéaire• Le filtrage linéaire, consistent à modifier la valeur de chaque pixel
par une moyenne pondérée de la valeur du pixel et de celles de ces voisins.
• Le filtrage d’image est réalisé au moyen de produits de convolution
Image filtrée=h* image à filtrer
. Où h le filtre ou masque de convolution. Ce masque est
nécessairement de taille impaire.
Filtrage linéaire
Comment faire la Convolution?
Masque h
Image I
par glissement
Si le masque recouvre des zones en dehors de l'image: Soit on considère que l'image est entourée de noir, donc des valeurs nulles. Soit on considère que l'image est entourée d'elle même, effet miroir
Un voisinage d’un pixel est un ensemble de pixels voisins
Système de voisinage
Filtrage linéaire: Application Lissage
• Lissage par moyennage• Lissage gaussien• Lissage pyramidal• …..
Lissage par moyennage
Les coefficients d’un filtre moyenneur sont égaux. Leurs valeurs est 1/N2.
Avec N la taille du masque.
Pour N=3
Lissage par moyennageAlgorithme
h=[1/9,1/9,1/9; 1/9,1/9,1/9; 1/9,1/9,1/9]Pour j: 1 à Nl faire Pour i: 1 à Nc faire Im2(i,j) = 0 Pour l : –1 à 1 faire Pour k : –1 à 1 faire Im2(i,j) = Im1(i+k, j+l)*h(k+2,l+2) FinPourFinPour
Plus d est grand, plus le lissage sera important, et plus l'image filtrée perd les détails de l'image originale
N=3 N=5
N=9 N=15
Exemple: Lissage par moyennage
N=1
Lissage: par filtre gaussienLe noyau gaussien centré et d'écart-type est défini par :
Lissage: par filtre gaussiens=1.5;for i=-3:3 for j=-3:3 g(i+4,j+4)=(1/sqrt(2*3.14*s^2))*exp(-((i^2)+(j^2))/(2*s^2)); endend
g =0.0049 0.0148 0.0288 0.0360 0.0288 0.0148 0.0049 0.0148 0.0450 0.0876 0.1094 0.0876 0.0450 0.0148 0.0288 0.0876 0.1706 0.2130 0.1706 0.0876 0.0288 0.0360 0.1094 0.2130 0.2660 0.2130 0.1094 0.0360 0.0288 0.0876 0.1706 0.2130 0.1706 0.0876 0.0288 0.0148 0.0450 0.0876 0.1094 0.0876 0.0450 0.0148 0.0049 0.0148 0.0288 0.0360 0.0288 0.0148 0.0049
g =0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0003 0.0000 0.0000 0.0000 0.0000 0.0000 0.0146 0.1080 0.0146 0.0000 0.0000 0.0000 0.0003 0.1080 0.7981 0.1080 0.0003 0.0000 0.0000 0.0000 0.0146 0.1080 0.0146 0.0000 0.0000 0.0000 0.0000 0.0000 0.0003 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
g =0.0000 0.0006 0.0027 0.0044 0.0027 0.0006 0.0000 0.0006 0.0073 0.0328 0.0540 0.0328 0.0073 0.0006 0.0027 0.0328 0.1468 0.2420 0.1468 0.0328 0.0027 0.0044 0.0540 0.2420 0.3990 0.2420 0.0540 0.0044 0.0027 0.0328 0.1468 0.2420 0.1468 0.0328 0.0027 0.0006 0.0073 0.0328 0.0540 0.0328 0.0073 0.0006 0.0000 0.0006 0.0027 0.0044 0.0027 0.0006 0.0000
=1.5
=1
=0.5
Exemple: Lissage par filtre gaussien
N=3 N=5N=1
Filtrage linéaire: Application détection des contours
But: est d’extraire les contours dans une imagePrincipe : est basé sur le gradient et la dérivé
Le calcul du gradient pour un pixel (i,j) selon la direction vertical, peut-être donné par:
∇ p(i,j) = ((p(i + 1,j) − p(i,j)) + ( p(i,j) − p(i −1,j)))/2
∇ p(i,j) = (p(i + 1,j) − p(i −1,j)) /2
MASQUE
∇ p(i,j) = (p(i + 1,j).1+p(i,j).0− p(i −1,j).1) /2
1/2 0 -1/2
p(i -1,j) p(i,j) p(i+1,j)
Filtrage linéaire: Application détection des contours
Pour immuniser l’opérateur du bruit, on fait une moyenne avec le gradient de voisinage dans la même direction:
1/w 0 -1/w
1/w 0 -1/w
1/w 0 -1/w
D’où la notion des filtres directionnels:
-1 -1 -1
0 0 0
1 1 1
Filtres directionnels
Direction 900
Image original Image directonnel
1 0 -1
1 0 -1
1 0 -1
Filtres directionnels
Direction 1800
Image original Image directonnel
-1.41 -0.7 0
-0.7 0 0.7
0 0.7 1.41
Direction 450
Filtres directionnels
Image original Image directonnel
Filtrage linéaire: Application détection des contours
Le calcul de dérivé pour un pixel (i,j) selon la direction vertical, peut-être donné par:
Δpv(i, j) = [p(i +1, j) − p(i, j)]− [p(i, j) − p(i −1, j)]
Δpv (i, j) = p(i + 1, j).1 + p(i, j).(-2) + p(i −1, j).1
1 -2 1
p(i -1,j) p(i,j) p(i+1,j)
MASQUE
Δph (i, j) = p(i, j + 1) − 2.p(i, j) + p(i, j −1)
Le calcul de dérivé pour un pixel (i,j) selon la direction horizental, peut-être donné par:
1
-2
1MASQUE
D’où le filtre Laplacien
0 1 0
1 -4 1
0 1 0
Filtre Laplacien
Image original Image Laplacien
Si le filtre ne peut pas être exprimé par une combinaison linéaire, il est appelé " non-linéaire ".
Les filtres non-linéaires sont plus complexes à mettre en œuvre que les filtres linéaires.
Les résultats obtenus avec les filtres non-linéaires sont très souvent de meilleure qualité que ceux obtenus par les filtres linéaires.
-Élimine le bruit sans rendre l’image flous (conservation des contours).
Filtre Non-Linéaire
Filtre médian
• La nouvelle valeur du pixel est la médiane des valeurs des niveaux de gris du voisinage
• Très adapté au bruit type Impulsionnel "poivre et sel ’’
• Préserve les contours
Exemple: Lissage par filtre median
N=3 N=7N=1
Filtrage non-linéaire: Application détection des contours
filtre de Roberts
∇p (i, j) = |p(i, j) − p(i +1, j +1) + p(i +1, j) − p(i, j +1)|
Image original Image Robert
Filtres adaptatifs
Dépend des données
Filtrage fréquentiel Utilise Transformée de Fourier 2D ou TFF(transformé de fourrier rapide
Image FFT de l’image
Filtre passe haut
Très-haute fréquence
Filtre passe haut
haute fréquence
Filtre passe bas
Base fréquence
Filtre passe bas
Très-Base fréquence
Top Related