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’image Par la détection des contours: Détecter des variations brusque entre pixels
Filtrage Deux types de filtrages : Linéaire Non-linéaire
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 des valeurs complètement aléatoires
Image filtrée=h* image à filtrer 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? par glissement Masque h Image I 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 Un voisinage d’un pixel est un ensemble de pixels voisins
Filtrage linéaire: Application Lissage Lissage par moyennage Lissage gaussien Lissage pyramidal …..
Lissage par moyennage Pour N=3 Les coefficients d’un filtre moyenneur sont égaux. Leurs valeurs est 1/N2. Avec N la taille du masque. Pour N=3
Lissage par moyennage Algorithme 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) FinPour
Exemple: Lissage par moyennage Plus d est grand, plus le lissage sera important, et plus l'image filtrée perd les détails de l'image originale
Lissage: par filtre gaussien Le noyau gaussien centré et d'écart-type est défini par :
Lissage: par filtre gaussien 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)); end
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.0049 0.0148 0.0288 0.0360 0.0288 0.0148 0.0049 =1.5 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.0000 0.0006 0.0027 0.0044 0.0027 0.0006 0.0000 =1 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.0000 0.0000 0.0000 0.0000 0.0000 =0.5
Exemple: Lissage par filtre gaussien
Filtrage linéaire: Application détection des contours But: est d’extraire les contours dans une image Principe : 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 ∇ p(i,j) = (p(i + 1,j).1+p(i,j).0− p(i −1,j).1) /2 MASQUE p(i -1,j) p(i,j) p(i+1,j) 1/2 -1/2
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 -1/w D’où la notion des filtres directionnels:
Filtres directionnels -1 1 Image original Image directonnel
Filtres directionnels 1 -1 Image original Image directonnel
Filtres directionnels -1.41 -0.7 0.7 1.41 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 MASQUE p(i -1,j) p(i,j) p(i+1,j) 1 -2 Le calcul de dérivé pour un pixel (i,j) selon la direction horizental, peut-être donné par: 1 -2 Δph (i, j) = p(i, j + 1) − 2.p(i, j) + p(i, j −1) MASQUE D’où le filtre Laplacien
Filtre Laplacien 1 -4 Image original Image Laplacien
Filtre Non-Linéaire 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 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
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