Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 3
CONVOLUTION ET FILTRAGE
D’IMAGES
ISTIC LGLSI2
PLAN DU CHAPITRE
Transformations de voisinage
Produit de convolution
Filtrage d’images
Filtrage dans le domaine spatial
Réduction des dégradations: filtre moyenneur, médian,
Gaussien, passe haut, passe bas
Accentuation des détails: Gradient et Laplacien
i i
Voisinage
j
j
3/69
TRANSFORMATIONS DE VOISINAGE
• Exemple d’une transformation de voisinage
• La moyenne des 5 pixels voisins.
• Taille du voisinage : 5 pixels voisins, 9 pixels
voisins, 25 pixels voisins.
• Forme du voisinage : carré, rectangle, hexagone,
octogone, ou bien une forme quelconque.
4/69
PRODUIT DE CONVOLUTION
5/69
PRODUIT DE CONVOLUTION
• Le produit de convolution continu d’une fonction f par une
fonction g est défini par :
Cas 1D: f * g ( x) g ( ). f ( x )d
Propriétés de la convolution:
Commutativité: f *g g* f
-1 0 1
-2 0 2
-1 0 1
8/69
ALGORITHME DE LA CONVOLUTION DISCRÈTE
Si le noyau de convolution g est de de taille 3x3 alors F = f*g
(la convolution de f par g) peut être calculée par l’algorithme
suivant:
F = zeros(N,N)
for i = 2:N-1
for j = 2:N-1
for k = 1:3
for l = 1:3
F(i,j)= F(i,j) +g(k,l)*f(i+k-2, j+l-2)
end
end
end
end 9/69
10/69
ALGORITHME DE LA CONVOLUTION DISCRÈTE
PROBLÈME DES BORDS DE L’IMAGE
Pas de valeurs calculées pour les bords de l’image
15/69
PROBLÈME DES BORDS DE L’IMAGE
16/69
SOLUTIONS POUR LES BORDS DE L’IMAGE
création d’une image de plus grande taille (par
emeple L+2, C+2 pour un noyau 3x3)
Considérer une valeur par défaut (exemple mettre 0).
Miroirisation : imaginer un miroir sur le bord, ceci
l’image.
Pas de solution miracle…
17/69
EXEMPLE D’APPLICATION DU PRODUIT DE
CONVOLUTION
18/69
FILTRAGE D’IMAGES
19/69
FILTRAGE D’IMAGES
• Les techniques de filtrage essayent de réduire les
dégradations qu’a subi l’image.
• Il existe différentes catégories de filtres :
Filtres opérant dans le domaine spatial:
Opèrent généralement par convolution dans
l’espace (x,y) de l’image
Filtres opérant dans le domaine fréquentiel:
Transporter l’image vers un espace fréquentiel en
appliquant soit la transformée de Fourier soit
d’autres transformations
Effectuer une sélection des fréquences
• Filtre Gaussien
• Principe
L’image résultat sera une image filtrée tel que chaque pixel
sera remplacé par la moyenne de son voisinage
• Effets
(+) Réduit le bruit,
(+) Lisse l’image
(-) Rend l’image floue
22/69
FILTRE MOYENNEUR
23/69
1/17 2 5 2
1 2 1
noyau g (3x3)
• Le résultat sera une image filtrée telle que chaque pixel sera remplacé
par la moyenne pondérée de son voisinage 3x3
Moyenne = le résultat du produit de convolution sera divisé par
la somme des coefficients du filtre (17) pour éviter de modifier
la luminance de l’image
24/69
Pondérée: attribuer plus de poids aux pixels les plus proches
FILTRE MOYENNEUR
• Principe:
considérer les valeurs des pixels appartenant à
un voisinage V
ordonner ces valeurs par ordre croissant
sélectionner la valeur minimale (filtre
minimum)
ou maximale (filtre maximum)
26/69
ou bien médiane (filtre médian)
Ou la kième valeur (filtre d’ordre k)
FILTRE MEDIAN
27/69
FILTRE MOYENNEUR ET FILTRE MEDIAN
Remarque:
Le filtre médian ne peut pas être implémenté avec un produit de 28/69
convolution
EXERCICE 1
12 5 6 6
Soit une image I,
un bruit impulsionnel est ajouté à cette image : 11 156 9 8
5 6 7 9
I(2,2) = 156
6 9 11 4
30/69
EXERCICE 1 : CORRECTION
Code Matlab
[n,p]=size(I);
C=zeros(n+2,p+2);
C(2:n+1,2:p+1) = I(1:n,1:p);
R=zeros(n,p);
for i=2:n+1
for j=2:p+1
X=[C(i,j) C(i,j+1) C(i,j-1) C(i+1,j) C(i+1,j+1) C(i+1,j-1) C(i-1,j)
C(i-1,j+1) C(i-1,j-1)];
X=sort(X);
R(i-1,j-1)=X(5);
end
end
figure(); imshow(uint8(C))
32/69
FILTRE PASSE HAUT
• Objectif:
Accentuer les zones de transitions (hautes
fréquences).
• Avantage:
Éliminer le flou
• Inconvénient:
Amplification du bruit dans les régions homogènes
33/69
FILTRE PASSE BAS
34/69
FILTRE BASSE BAS
FILTRE GAUSSIEN
• Le filtre Gaussien:
1 x2 y2
h ( x, y ) exp( )
2 2 2
• Exemple de masque
4 8 10 8 4
8 17 22 17 8
1
10 22 28 22 10
304
8 17 22 17 8 36/69
4 8 10 8 4
FILTRE BASSE BAS
FILTRE GAUSSIEN
37/69
FILTRE BASSE BAS
FILTRE GAUSSIEN
en sortie
REHAUSSEMENT D’IMAGES PAR ACCENTUATION
DES DÉTAILS
• Calcul du Gradient
• Quelques opérateurs Gradient
Gradient de Sobel
Gradient de Prewitt
• Calcul du Laplacien
39/69
GRADIENT ET LAPLACIEN
• Les détails correspondent généralement à des changements de
niveau de gris = les contours de l'image
• Ils peuvent être mis en relief par la dérivée première ou bien
par la dérivée seconde
– Pas de changement dérivée première est nulle
– Transition dérivée première passe par un maximum et
dérivée seconde passe par zéro
40/69
Dérivée première
Dérivée seconde
GRADIENT ET LAPLACIEN
• En 2D on parle de Gradient et de Laplacien
2 f 2 f
G ( f ( x , y )) f / x f x 2 y 2
2
f /y
Masques de Sobel
• fx(i,j) = (f*hx)(i,j)
• fy(i,j) = (f*hy)(i,j) -1 0 1 -1 -2 -1
-2 0 2 0 0 0
-1 0 1 1 2 1
Noyau hx Noyau hy
43/69
GÉNÉRATION DE L’IMAGE REHAUSSÉE
• Une fois la méthode d’approximation du gradient choisie,
l’image rehaussée par le gradient peut être générée de
différentes manières selon l’application.
Méthode 1 Méthode 4
g ( x, y ) G ( f ( x, y )) G ( f ( x, y ))
g ( x, y )
si G ( f ( x, y )) Seuil
L sin on
Méthode 2 Méthode 5
G ( f ( x, y )) si G ( f ( x, y )) Seuil
g ( x, y ) g ( x, y ) L si G ( f ( x, y )) Seuil
f ( x, y ) sin on
45/69
DÉTECTION DES CONTOURS AVEC LE
GRADIENT
-1 0 1 -1 -2 -1
-2 0 2 0 0 0
-1 0 1 1 2 1
Noyau Gx Noyau Gy
Résultat de la convolution: rehaussement du contour
49/69
50/69
GRADIENT DE PREWITT
Gradient de Prewitt
• Gradient horizontal et vertical
-1 0 1 1 1 1
-1 0 1 0 0 0
-1 0 1 -1 -1 -1
Noyau Gx Noyau Gy
51/69
LAPLACIEN
• L'approximation par différences finies la plus
simple de la dérivée seconde est la convolution par
le noyau 1 2 1 pour l'approximation de 2 f
1 2x
2 f
• et 2 pour l'approximation de 2
y
1
52/69
LAPLACIEN
53/69
EXERCICE 2
• Soit l’image im1 suivante
• Appliquer le filtre linéaire défini par le masque 1x3 suivant
1 0 1
puis représenter le résultat sur une matrice img1.
1
• Appliquer le filtre linéaire défini par le masque 3x1 suivant 0
puis représenter le résultat sur une matrice img2.
1
• Pour les bords de l’image, adopter la méthode de
miroirisation.
• Calculez l’image module selon la formule
IMM
2 3 3 14
3 4 24 24
3 24 22 8 56/69
14 24 8 8
EXERCICE 2 : CORRECTION
[n,c]=size(im1);
for i=2:n+1
img1=zeros(n,c);
for j=2:c+1
img2=zeros(n,c);
img1(i-1,j-1) = imbord(i-1,j)-
imbord(i+1,j);
imbord=zeros(n+2,c+2);
end;
end;
for i=1:n
for j=1:c
for i=2:n+1
imbord(1,j+1)=im1(1,j);
for j=2:c+1
imbord(n+2,j+1)=im1(n,j);
img2(i-1,j-1) = imbord(i,j-1)-
imbord(i+1,1)=im1(i,1);
imbord(i,j+1);
imbord(i+1,c+2)=im1(i,c);
end;
end;
imbord(i+1,j+1)=im1(i,j);
for i=1:n
end;
for j=1:c
end;
MM(i,j) = abs(img1(i,j)) +
abs(img2(i,j)); 57/69
%%On n’a pas besoin des 4 pixels
end
%%(1,1) (1,c+2) (n+2,1) (n+2,c+2)
end
%%dans les calculs
FILTRAGE OPÉRANT DANS LE DOMAINE
FRÉQUENTIEL
58/69
TRANSFORMATIONS SPECTRALES:
60/69
TRANSFORMÉE DE FOURIER
Transformée de Fourier 2D continue : (x,y) coordonnées
spatiales et (u, v) coordonnées fréquentielles
TF directe : F (u , v ) f ( x, y )e ( 2 j ( ux vy ))
dxdy
61/69
TRANSFORMÉE DE FOURIER DISCRÈTE
Soit f(x,y) définie par une matrice d’échantillons
régulièrement espacés :
N : Le nombre de lignes
M : Le nombre de colonnes
x : Le pas d’échantillonnage selon x
y : Le pas d’échantillonnage selon y
posons :
f ( x, y ) f ( x 0 x.x, y 0 y.y )
62/69
TRANSFORMÉE DE FOURIER DISCRÈTE
Alors la TF-2D discrète est donnée par :
N 1M 1
F (u ,v) 1 f(x, y)exp( 2 j(ux / N vy / M ))
MN x 0 y 0
N 1M 1
f(x, y)F(u,v)exp(2j(ux/ N vy/ M))
u 0 v 0
63/69
TRANSFORMÉE DE FOURIER : INTÉRÊT
• Composantes fréquentielles en 2d
basses fréquences spatiales: u2+v2 faible
hautes fréquences spatiales: u2+v2 élevé
v
64/69
TRANSFORMÉE DE FOURIER : INTÉRÊT
• Dans le domaine spectral
les basses fréquences représentent les grandes surfaces
homogènes et les parties floues
les hautes fréquences représentent les contours, plus
généralement les changements brusques d'intensité et enfin
le bruit.
65/69
TRANSFORMÉE DE FOURIER : INTÉRÊT
• Objectif: isoler le signal du bruit
• Hypothèse: le bruit et le signal utile vont être portés par des
composantes fréquentielles différentes
Signal BF (basses fréquences),
bruit HF (hautes fréquences)
• Débruitage: mettre les composantes fréquentielles
correspondant aux hautes fréquences à zéro
66/69
TRANSFORMÉE DE FOURIER: PROPRIÉTÉS
Produit de convolution:
La transformée de Fourier d'un produit de
convolution est le produit des transformées de
Fourier
TF[f(x)*g(x)] F(u).G(u)
Dans le domaine spectral (ou fréquentiel), le produit
de convolution se fait par multiplication
67/69
FILTRAGE DANS LE DOMAINE SPECTRAL
68/69
FILTRAGE DANS LE DOMAINE SPECTRAL
f(x,y) TF
F(u,v)
Image
d’entrée F(u,v) ×H(u,v)
h(x,y) TF TF-1
H(u,v)
Masque
f(u,v) *h(u,v)
Image filtrée
69/69