Ce projet traite le débruitage d’images numériques corrompues en utilisant deux modèles basés sur des équations aux dérivées partielles. Le premier modèle étudié est l’équation de la chaleur, il repose sur un processus de diffusion isotrope pour un lissage de l’image traitée. Ce modèle présente un inconvénient majeur car il ne fait pas distinction entre le bruit et les contours de l’image. Pour remé- dier à cet inconvénient, la notion de diffusion anisotrope a été introduite, dont le principe est de diffuser fortement dans les zones à faibles gradients (zones ho- mogènes), et faiblement dans les zones à forts gradients (contours), c’est le cas du modèle de Pérona-Malik.
La résolution de ces modèles est effectuée en utilisant la méthode des différences finies. Les schémas utilisés sont implémentés sur Matlab et une comparaison de ces schémas est faite.
Enfin, un aperçu sur l’utilisation de la boîte à outils "Imagerie" pour le traitement d’images est présenté.
Étude et résolution numérique de deux modèles basés sur des équations aux dérivées partielles pour le débruitage des images
1. Projet tutoré
Présenté par :
BOUDLAL Ayoub & TAHIRI Chaimaa
Pour obtenir le diplôme de
Licence fondamentale : Sciences Mathématiques et Applications
'
&
$
%
Étude et résolution numérique de deux
modèles basés sur des équations aux
dérivées partielles pour le débruitage des
images
soutenu le : 25 Juin 2015
devant le jury composé de :
Mr Fouad ZINOUN Président Professeur de l’Enseignement Supérieur à la FSR
Mr Mohammed ZIANI Encadrant Professeur de l’Enseignement Supérieur à la FSR
Mr Mostafa OUARIT Examinateur Professeur de l’Enseignement Supérieur à la FSR
Année universitaire : 2014/2015
1
4. Remerciements
Avant d’aborder le rapport de projet de fin d’étude, nous tenons à exprimer nos
précieux remerciements à la Faculté des Sciences de Rabat.
Nous tenons à remercier Mr. Ziani Mohammed, notre encadrant de mémoire, pour
tout le soutien, l’aide, l’orientation et la guidance qu’il nous a apporté durant toute
cette période de réalisation de notre mémoire.
Merci aux Professeurs Mostafa Ouarit et Fouad Zinoun d’avoir accepté d’être
dans le jury et d’évaluer ce travail.
Nous ne pouvons pas ceux qui par leur amour et leur confiance ont soutenu morale-
ment ce travail : nos familles. Spécialement nos parents pour le soutien inconditionnel
dont ils ont fait preuve depuis que notre projet de fin d’étude est défini. Merci pour
le soutien financier, moral, psychologique et matériel. Si nous sommes ici aujourd’hui,
c’est grâce à vous !
Enfin, nous remercions nos amis et camarades de promotion pour ces trois années
passées ensemble, dans les meilleurs moments comme dans les pires.
4
5. Introduction
En analyse d’image il arrive souvent de se retrouver confronté à un phéno-
mène de bruit sur les images ce qui rend le traitement des données difficile. Le
phénomène de bruit peut être soit d’origine externe, perturbation du système
d’acquisition de l’image par des facteurs tel que la luminosité, la pollution, soit
d’origine interne au signal du fait des fluctuations spontanées des grandeurs élec-
triques mises en œuvre dans l’acquisition de l’image. L’apparition de bruit dans
une image est donc préjudiciable à bien des égards pour son analyse, sa classifi-
cation et sa compréhension tant intuitive que formelle.
Afin de minimiser ce phénomène de bruitage de l’image plusieurs techniques ont
été développées. Les plus intuitives consistent à lisser l’image en remplaçant la
valeur d’un pixel par la valeur moyenne de son voisinage ou la valeur médiane,
il s’agit d’une opération de convolution de l’image considérée par un filtre. Ces
techniques de traitement du bruit par des processus linéaires présentent souvent
des défauts et se révèlent inefficaces dans le cadre d’images fortement bruitées,
la valeur des pixels bruités influant à ordre égal que celle des pixels significatifs
le résultat.
L’application des équations aux dérivées partielles (EDP) semble par contre une
approche relativement efficace contre le bruit que peuvent subir les images. La
1ère
EDP utilisée était l’équation de la chaleur. C’est un processus de diffusion
pour homogénéiser l’intensité de l’image. Un inconvénient de l’équation de la
chaleur est qu’il ne distingue pas entre le bruit et les contours de l’image. Ainsi,
l’image résultante après filtrage serait souvent floue. Pour remédier à cet incon-
vénient, le modèle de Pérona-Malik a été introduit. Ce dernier consiste a lisser les
zones homogènes et de rechausser les contours.
Le but de ce rapport est d’étudier et analyser ces modèles et présenter des mé-
5
6. TABLE DES MATIÈRES
thodes numériques utilisées pour les résoudre efficacement. Le rapport sera or-
ganisé de la manière suivante :
Dans le premier chapitre on étudie les modèles basés sur l’équation de chaleur
et Pérona-Malik pour le débruitage des images. Dans le deuxième chapitre on
utilise différents schémas aux différences finies pour résoudre ces modèles. On
donne aussi une comparaison de ces schémas en terme de complexité et de sta-
bilité. Dans le dernier chapitre on utilise les modèles présentés dans le chapitre 1
pour améliorer la qualité de quelques images et on compare numériquement les
schémas de différence finies utilisés. On donne aussi dans ce chapitre un aperçu
sur la boîte à outils imagerie de Matlab.
6
7. Chapitre1
Équations aux dérivées partielles en
traitement d’images
Une équation aux dérivées partielles (EDP) est une équation dont les solutions
sont des fonctions inconnues (variables) vérifiant certaines conditions concernant
leurs dérivées partielles. Les EDPs ont été introduites en traitement d’images
en 1984, voir [4]. Partant de l’équation classique de la chaleur, une grande va-
riété d’EDP est utilisée pour résoudre quelques problèmes de base en traitement
d’images.
1.1 Image numérique
Une image numérique est une matrice de pixels repérés par leur coordonnées
(x, y). S’il s’agit d’une image couleur, un pixel est codé par 3 composantes (r,g,b)
chacune comprise au sens large entre 0 et 255, représentant respectivement les
"doses" de rouge, vert et bleu qui caractérisent la couleur du pixel. S’il s’agit d’une
image en niveau de gris, il est codé par une composante comprise au sens large
entre 0 et 255, représentant la luminosité du pixel, voir figure 1.1. En effet chaque
entier représentant un niveau de gris est codé sur 8 bits. Il est donc compris entre
0 (blanc) et 28
− 1 = 255 (noir). C’est la quantification la plus courante. Dans ce
rapport, on ne considère que les images en niveau de gris.
7
8. 1.2. FILTRAGE PAR CONVOLUTION
Cameraman 256x256 Echantillon de cameraman
8x8 (249 :256,249 :256)
Fig. 1.1 – Image numérique
1.2 Filtrage par convolution
La convolution est l’une des principales opérations utilisées en traitement des
images. La convolution d’une image I par un noyau de filtrage h est définie par :
I(x, y) ∗ h(x, y) =
Z +∞
+∞
Z +∞
+∞
I(x − u, y − v)h(u, v)dudv.
Dans le cas discret, cette équation s’écrit :
I(x, y) ∗ h(x, y) =
N
X
−N
M
X
−M
I(x + i, y + j)h(i, j)
La valeur de chaque pixel est recalculée on se basant sur la valeur du pixel lui-
même et sur les valeurs des pixels voisins. La combinaison des filtres à l’utili-
sation de la convolution a permis le développement d’un très grand nombre de
filtres. Il existe, en général, deux types de filtres :
Les filtres lisseurs : Ils sont utilisés à enlever le bruit d’une image ou la simpli-
fier en la rendant plus régulière. Ils correspondent à des filtres passe-bas dans le
domaine fréquentiel. 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.
8
9. 1.2. FILTRAGE PAR CONVOLUTION
Donnons maintenant quelques exemples de filtres lisseurs :
Filtre moyenneur : Le niveau de gris du pixel central est remplacé par la
moyenne des niveaux de gris des pixels voisins. La taille du noyau dépend de
l’intensité du bruit et de la taille des détails significatifs de l’image traitée. Les
effets du filtre moyenneur varient avec la taille du noyau ; plus les dimensions
du noyau seront importantes, plus le bruit sera éliminé. Mais en contrepartie, les
détails fins seront eux-aussi effacés et les contours étalés.
Filtre gaussien : Les filtres moyenneurs ont pour effet de lisser considérable-
ment l’image d’entrée. Il est donc préférable, pour éviter ce type d’effet, d’utiliser
un masque avec cœfficient plus élevé au centre que sur les contours du noyau. Le
filtre gaussien répond parfaitement à ce type de problème et est parmi les noyaux
les plus utilisés pour lisser les images. Ce filtre est de type linéaire et une version
discrétisée de la fonction gaussienne 2D est donnée par :
G(x, y) =
1
√
2πσ2
exp
x2
+ y2
4σ2
,
où σ caractérise l’écart-type. Le paramètre de la taille détermine la largeur à mi-
hauteur de la gaussienne (LMH, largeur à mi-hauteur). La relation entre la largeur
à mi-hauteur et σ est :
LMH = 2
√
2 ln 2σ = 2.35482σ.
Par exemple, le noyau d’un filtre gaussien 3 × 3 avec un écart-type σ = 0.6746 est
donné par :
h(u, v) =
1
25
1 3 1
3 9 3
1 3 1
.
Les filtres rehausseurs : Ils sont utilisés à faire ressortir les régions de contraste
et les détails ou pour estimer des grandeurs différentielles. Ils correspondent à
des filtres passe-haut dans le domaine fréquentiel. Dans le cas de filtre de rehaus-
sement on cite l’exemple de filtre passe haut, caractérisé par un noyau compor-
tant des valeurs négatives autour du pixel central. Cette accentuation augmente
9
10. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES
le contraste des limites entre les zones homogènes de l’image et est alors appelée
extraction de contours.
1.3 Modèles utilisés en traitement d’images
Les EDPs ont pris une grande importance dans le domaine de traitement
d’images. Ces équations sont nées du principe de physique de la diffusion qui
est basé sur celle qui s’établit dans une matière fluide à savoir que l’équation
de diffusion est similaire à celle des concertations locales d’un fluide qui s’équi-
librent. Le transfert pour atteindre l’équilibre des concentrations s’exprime avec
la première loi empirique de Fick :
j = −D.∇u,
avec :
D : tenseur de diffusion, symétrique défini positif,
u((x, y, z), t) : concentration de matière au point (x, y, z) à l’instant t,
∇u : gradient spatial de la concentration de matière,
j : flux de matière.
L’équation montre que le sens de déplacement du flux de la matière est opposé
à la concentration, c.-à-d. que la concentration passe d’une région plus forte vers
une région plus faible. Si ∇u et j sont parallèles, on parle d’une diffusion iso-
trope, dans ce cas on peut remplacer D par un scalaire g nommé diffusivité. Le
cas général est appelé anisotrope. La propriété de transport de matière sous la
condition de conservation s’exprime avec l’équation de continuité :
∂u
∂t
= −div(j),
où t représente le temps et
∂u
∂t
la dérivée temporelle de la concentration de ma-
tière. En combinant ces deux équations, on obtient l’équation de diffusion (se-
conde loi empirique de Fick) :
∂u
∂t
= div(D.∇u).
Dans le cas où le tenseur de diffusion D est constant on parle de diffusion homo-
gène, et dans le cas où il dépend de la structure différentielle de u, la diffusion
10
11. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES
est non-homogène. Cette équation apparaît dans beaucoup de domaines. Dans
le domaine du transfert de chaleur, c’est l’équation de la chaleur. En traitement
d’images, on peut assimiler la concentration u au niveau de gris et les conditions
initiales à l’image de départ.
1.3.1 Équation de la chaleur
Koenderink a démontré en 1984, que la convolution d’une image bruitée par
un filtre gaussien est la solution de l’équation de la chaleur pour σ =
√
2t. Dans le
domaine de l’imagerie, cette équation est mieux connue sous le nom d’équation
de diffusion. Elle s’écrit sous la forme :
∂u
∂t
− ∆u(t, x) = 0 si x ∈ Ω et t ∈]0, T]
u(x, 0) = u0(x)
∂u
∂N
= 0 sur ∂Ω,
avec Ω est le domaine de l’image et N le vecteur normal. Les conditions qui inter-
viennent naturellement en traitement d’images sont les conditions de Neumann
∂u
∂N
= 0 sur ∂Ω.
Pour imposer une telle condition, il suffit de prolonger l’image discrète u par
réflexion par rapport à ses bords, voir [1].
La diffusion des pixels par l’équation de la chaleur présente un défaut majeur. Les
contours sont endommagés. Le problème qui se pose est comment conserver les
contours d’une image tout en éliminant le bruit ? L’algorithme de Pérona-Malik
répond à ce problème par une prise en compte du gradient.
1.3.2 Modèle de Pérona-Malik
La faiblesse de l’équation de la chaleur et que la diffusion est identique en tout
point de l’image. L’image est lissée aussi bien dans les zones homogènes que le
long des contours. Donc pour éviter cette altération des contours, le filtrage par
diffusion non-linéaire est utilisé.
L’introduction des équations de diffusion non-linéaire dans le domaine du trai-
tement des images remonte à un article de Pérona-Malik, voir [5]. Ce modèle
consiste à lisser l’image dans les zones homogènes et de ne pas faire évoluer
11
12. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES
l’image le long des contours. L’équation correspondante s’écrit :
∂u
∂t
(x, y, t) = div (g(|∇u|).∇u(x, y, t))
u(x, y, 0) = u0(x, y)
∂u
∂N
= 0 sur ∂Ω,
avec Ω est le domaine de l’image, N est le vecteur normal et |∇u| est la norme du
gradient de u. La fonction g est décroissante avec g(0) = 1 et lim
s→+∞
g(s) = 0. Par
exemple, Pérona-Malik ont proposé les fonctions suivantes :
g(s) =
1
1 + (s
λ
)2
et
g(s) = exp −
λ
s
2
!
Le paramètre λ est appelé seuil ou paramètre contraste comme nous allons
voir, il joue un rôle important dans le comportement de la diffusion.
Cette métrique impose une diffusion plus faible pour des valeurs de gradients
d’autant plus élevées. Donc les contours sont préservés. Une interprétation per-
met de saisir plus facilement les différences avec la diffusion isotrope, voir [7], est
obtenue en écrivant l’équation en termes de dérivées secondes directionnelles,
voir la figure 1.2, dans la direction du gradient :
−
→
η =
ux
|∇u|
,
uy
|∇u|
T
,
et dans la direction orthogonale
−
→
ξ =
−
uy
|∇u|
,
ux
|∇u|
T
,
avec ∇u = (−
→
ux, −
→
uy) est le vecteur gradient de u et |∇u| =
p
u2
x + u2
y est sa norme.
Posons c = g(|∇u|). Dans le repère (
−
→
i ,
−
→
j ) du système d’axes (x, y) de l’image
nous avons :
∂u
∂t
= div(c∇u) = div(c[ux, uy]) =
∂
∂x
cux +
∂
∂y
cuy.
12
13. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES
Fig. 1.2 – Direction du gradient et direction orthogonale
ou encore
∂u
∂t
= g(|∇u|)[uxx + uyy] +
∂
∂x
g(|∇u|)
ux +
∂
∂y
g(|∇u|)
uy,
On a
∂
∂x
g(|∇u|)
ux =
g(|∇u|)
0
|∇u|
(uxxux + uxyuy)ux
et
∂
∂y
g(|∇u|)
uy =
g(|∇u|)
0
|∇u|
(uyyuy + uyxux)uy.
Ceci donne l’expression suivante :
∂u
∂t
= g(|∇u|)[uxx + uyy] +
g(|∇u|)
0
|∇u|
(uxxux + uxyuy)ux +
g(|∇u|)
0
|∇u|
(uyyuy + uyxux)uy.
13
14. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES
Ainsi, dans la nouvelle repère (−
→
η ,
−
→
ξ ) du système d’axes (x, y) la dérivée première
uη de u par rapport à −
→
η s’exprime par :
−
→
η = ∇U−
→
η = |∇U|,
et la dérivée seconde uηη s’écrit :
uηη = ∇uη
−
→
η
=
1
|∇u|
[
∂
∂x
(|∇u|)ux +
∂
∂y
(|∇u|)uy]
=
(uxxux + uxyuy)ux + (uyyuy + uxyux)uy
(|∇u|)2
=
uxxu2
x + 2uxyuxuy + uyyu2
y
(|∇u|)2
.
Le laplacien étant invariant au changement de base, on peut écrire :
∆u = uxx + uyy = uηη + uξξ.
En combinant les équations précédentes nous obtenons :
∂u
∂t
= div(g(|∇u|))|∇u| = g(|∇u|)(uηη + uξξ) + (|∇u|)g
0
(|∇u|)uηη
= [g(|∇u|) + (|∇u|)g
0
(|∇u|)]uηη + g(|∇u|)uηη.
Cette dernière équation peut s’écrire sous la forme :
∂u
∂t
= cξ.uξξ + cη.uηη
cξ = g(|∇u|)
cη = g(|∇u|) + (|∇u|)g
0
(|∇u|).
La fonction φ(s) = s.g(s) est appelée fonction flux, elle gère la diffusion selon la
direction du gradient. La figure 1.3 représente les fonctions de diffusion et de flux
associées aux deux fonctions de diffusion proposées par Pérona et Malik.
14
15. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES
Fig. 1.3 – Représentation des fonctions de diffusion et de flux associées aux deux fonc-
tions de diffusion proposées par Pérona et Malik
Le comportement de l’équation de diffusion est maintenant plus facile à interpré-
ter. Dans la direction orthogonale au gradient, la diffusion anisotrope induit un
lissage modulé par la norme du vecteur gradient.
Le chapitre suivant représente la résolution numérique par différences finies
des modèles mentionnés dans ce chapitre.
15
16. Chapitre 2
Résolution numérique
En analyse numérique, la méthode des différences finies est une technique
courante de recherche de solutions approchées d’équations aux dérivées par-
tielles qui consiste à résoudre un système de relations (schéma numérique) liant
les valeurs des fonctions inconnues en certains points suffisamment proches les
uns des autres, en se basant sur l’approximation des dérivées présentées dans les
EDPs.
Le problème posé sur le domaine continu (espace - temps) n’est pas résoluble tel
quel par un ordinateur, qui ne peut traiter qu’un nombre fini d’inconnues. Pour se
ramener à un problème en dimension finie, on discrétise l’espace et/ou le temps.
Si le problème original est linéaire on obtient un système linéaire. Si le problème
original est non linéaire on aura un système non linéaire.
2.1 Approximation des dérivées
2.1.1 Approximation de la dérivée première
En un point x et pour une valeur h du pas de discrétisation tels que u soit trois
fois dérivable sur l’intervalle [x − h, x + h] la formule de Taylor-Young conduit
aux deux relations :
u(x + h) = u(x) +
3
X
n=1
hn
n!
u(n)
(x) + h3
ε1(x, h),
16
17. 2.1. APPROXIMATION DES DÉRIVÉES
u(x − h) = u(x) +
3
X
n=1
(−h)n
n!
u(n)
(x) + h3
ε2(x, h),
où les deux fonctions εi(x, h) convergent vers 0 avec h. Par conséquent,
δ+u(x) =
u(x + h) − u(x)
h
= u
0
(x) +
h
2
u
00
(x) +
h2
3!
u(3)
(x) + h2
ε1(x, h),
δ−u(x) =
u(x − h) − u(x)
h
= −u
0
(x) +
h
2
u
00
(x) −
h2
3!
u(3)
(x) + h2
ε2(x, h).
Ainsi, δ+u(x) et δ−u(x) représentent des approximations d’ordre 1 de u
0
(x).
En soustrayant les développements précédents, ce qui revient à faire la moyenne
de deux différences finies antérieures et postérieure à u(x), on obtient :
δ0u(x) =
u(x + h) − u(x − h)
2h
= u
0
(x) +
h2
6
u3
(x) + h2
ε3(x, h).
C’est une approximation d’ordre 2 de u0
(x).
2.1.2 Approximation de la dérivée seconde
En un point x et pour une valeur du pas de discrétisation tels que soit quatre
fois dérivable sur l’intervalle [x − h, x + h], la formule de Taylor-Young conduit à
la relation :
u(x + h) = u(x) +
4
X
n=1
hn
n!
u(n)
(x) + h4
ε1(x, h)
u(x − h) = u(x) +
4
X
n=1
(−1)n hn
n!
u(n)
(x) + h4
ε2(x, h),
où les fonctions εi(x, h) convergent vers 0 avec h tend vers 0. Par conséquent, on
peut approcher u
00
(x) par le terme :
u(x + h) − 2u(x) + u(x − h)
h2
.
17
18. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES
2.2 Discrétisation par différences finies
On note u l’image considérée et ui,j sa valeur au pixel (i, j). Le pas d’espace h
est pris égal à 1. Pour approcher les solutions des modèles du chapitre 1 on aura
besoin des approximations en espace des dérivées suivantes, voir [6] :
Différences finies centrées :
∂ui,j
∂x
'
ui+1,j − ui−1,j
2
.
∂ui,j
∂y
'
ui,j+1 − ui,j−1
2
.
Différences finies décentrées à droite :
∂ui,j
∂x
' ui+1,j − ui,j.
∂ui,j
∂y
' ui,j+1 − ui,j.
Différences finies décentrées à gauche :
∂ui,j
∂x
' ui,j − ui−1,j.
∂ui,j
∂y
= ui,j − ui,j−1.
Pour les dérivées secondes :
∂2
u
∂2x
' ui+1,j − 2ui,j + ui−1,j.
∂2
u
∂2y
' ui,j+1 − 2ui,j + ui,j−1.
2.2.1 Équation de la chaleur
Le schéma d’Euler explicite consiste à utiliser un schéma aux différences finies
décentré à droite en temps. Il s’écrit :
18
19. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES
uk+1
i,j − uk
i,j
∆t
− ∆uk
i,j = 0, k = 0, 1, ..., M, avec ∆t =
T
M
.
Alors le schéma s’écrit :
uk+1
i,j − uk
i,j
∆t
− (uk
i+1,j + uk
i−1,j + uk
i,j+1 + uk
i,j−1 − 4uk
i,j) = 0,
ou encore
uk+1
i,j = (1 − 4∆t)uk
i,j + ∆t(uk
i+1,j + uk
i−1,j + uk
i,j+1 + uk
i,j−1).
En écrivant u sous la forme d’un vecteur U, l’écriture matricielle de ce schéma est
la suivante :
Uk+1
= AUk
, k = 0, 1, ..., M,
où A est une matrice à 5 diagonales et elle ne dépend que de ∆t. Ce schéma néces-
site seulement un produit matrice-vecteur en chaque pas de temps. Cependant il
est seulement stable sous la condition ∆t
∆x2 + ∆t
∆y2 ≤ 1
2
, voir [3].
Le schéma d’Euler implicite consiste à utiliser un schéma aux différences finies
décentré à gauche en temps
uk+1
i,j − uk
i,j
∆t
− ∆uk+1
i,j = 0, k = 0, 1, ..., M.
Le schéma s’écrit :
uk+1
i,j − uk
i,j
∆t
− (uk+1
i+1,j + uk+1
i−1,j + uk+1
i,j+1 + uk+1
i,j−1 − 4uk+1
i,j ) = 0.
ou encore
uk
i,j = (1 − 4∆t)uk+1
i,j − ∆t(uk+1
i+1,j + uk+1
i−1,j + uk+1
i,j+1 + uk+1
i,j−1).
L’écriture matricielle est la suivante :
AUk+1
= Uk
, k = 0, 1, .., M.
L’avantage de ce schéma est qu’il est inconditionnellement stable, voir [3]. Mais
il demande la résolution d’un système linéaire en chaque pas du temps. On peut
19
20. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES
réduire efficacement la complexité de cette résolution en décomposant la discré-
tisation suivant x et y séparément, on obtient ainsi deux systèmes tridiagonales
qu’on peut résoudre facilement par l’algorithme de Thomas, voir l’annexe.
On effectue d’abord une discrétisation suivant x :
u
k+1
2
i,j − uk
i,j
∆t
= u
k+1
2
i+1,j + u
k+1
2
i−1,j − 2u
k+1
2
i,j ,
puis une discrétisation suivant y :
uk+1
i,j − u
k+1
2
i,j
∆t
= uk+1
i,j+1 + uk+1
i,j−1 − 2uk+1
i,j .
Ce second schéma implicite s’écrit sous la forme :
i. Uk+1
2 = A−1
x Uk
ii. Uk+1
= A−1
y Uk+1
2 ,
pour k = 0, 1, ..., M. Par exemple, dans le cas d’une matrice de 4 lignes et 5 co-
lonnes, la matrice Ax a la forme suivante
Ax =
A
A 0
A
0 A
A
où
A =
β + α α 0 0
α β α 0
0 α β α
0 0 α β + α
,
α = −∆t et β = 1 + 2∆t. On définit de la même façon la matrice Ay.
2.2.2 Équation de Pérona-Malik
Le schéma explicite aux différences finies pour approcher la solution de l’équa-
tion de Pérona-Malik peut s’écrire
20
21. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES
un+1
i,j − un
i,j
dt
= div
g(|∇un
ij|)
∂un
ij
∂x
∂un
ij
∂y
= divg(|∇un
ij|)
∂un
ij
∂x
g(|∇un
ij|)
∂un
ij
∂y
=
∂
∂x
g(|∇un
ij|)
∂un
ij
∂x
| {z }
ϕn(x,y)i,j
+
∂
∂y
g(|∇un
ij|)
∂un
ij
∂y
| {z }
ψn(x,y)i,j
∂
∂x
ϕn
(x, y)i,j =
ϕn
i+1
2
,j
− ϕn
i−1
2
,j
h
= gn
i+1
2
,j
(un
i+1,j − un
i,j) − gn
i−1
2
,j
(un
i,j − un
i−1,j)
∂
∂y
ϕn
(x, y)i,j =
ϕn
i,j+1
2
− ϕn
i,j−1
2
h
= gn
i,j+1
2
(un
i,j+1 − un
i,j) − gn
i,j−1
2
(un
i,j − un
i,j−1)
un+1
i,j = un
i,j+dt(gn
i+1
2
,j
(un
i+1,j−un
i,j)+gn
i−1
2
,j
(un
i,j−un
i−1,j)+gn
i,j+1
2
(un
i,j+1−un
i,j)+gn
i,j−1
2
(un
i,j−un
i,j−1))
un+1
i,j = un
i,j + dt[gn
i+1
2
,j
dEU + gn
i−1
2
,j
dWU + gn
i,j+1
2
dSU + gn
i,j−1
2
dNU],
avec :
dEU = un
i+1,j − un
i,j,
dWU = un
i,j − un
i−1,j,
dSU = un
i,j+1 − un
i,j,
dNU = un
i,j − un
i,j−1,
et on prend :
gn
i+1
2
,j
= g(|dEU|),
21
22. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES
gn
i−1
2
,j
= g(|dWU|),
gn
i,j+1
2
= g(|dSU|),
gn
i,j−1
2
= g(|dNU|).
Le schéma explicite pour approcher la solution du modèle de Pérona-Malik
est facile à implémenter. Cependant, il est conditionnellement stable. On peut
utiliser un schéma implicite qui est toujours stable, mais il demande la résolu-
tion d’un système non-linéaire à chaque pas de temps. Une autre alternative est
d’utiliser schéma semi-implicite.
22
23. Chapitre 3
Résultats numériques
Dans ce chapitre, on applique les modèles du chapitre 1 pour le débruitage de
quelques images.
3.1 Dégradation d’images
Dans la pratique, une image peut être dégradée par plusieurs types et formes
de bruit, la source principale des bruits dans les images numériques survenues
pendant l’acquisition (numérisation) et la transmission. Ainsi, il est important de
connaître la nature du bruit contaminant l’image. En fait, le type de bruit le plus
connu et le plus difficile à réduire, est le bruit blanc gaussien, il apparaît dans
l’image comme une variation aléatoire autour des valeurs d’intensité. Il est mo-
délisé par la densité de probabilité gaussienne (unidimensionnelle) de moyenne
nulle et de variance σ2
suivante :
f(x) =
1
√
2πσ
e
−
x2
2σ2
. (3.1)
3.2 Critère d’analyse et d’évaluation pour le débrui-
tage d’images
La pertinence des méthodes de débruitage dépend de deux critères, subjectif
et objectif permettant d’évaluer l’efficacité de ces méthodes. Le critère subjectif
représente l’aspect visuel, il va permettre à l’utilisateur d’identifier le contenu des
images, la netteté de celles-ci, la présence d’artefacts et la qualité des contours. Le
23
24. 3.3. MÉTHODES DE DÉBRUITAGE
critère objectif se base sur deux mesures : l’erreur quadratique moyenne (MSE) et
le rapport signal sur bruit (PSNR). Bien qu’ils ne correspondent pas toujours avec
la perception humaine, ils sont souvent considérés comme des bonnes mesures
de la fidélité d’une évaluation d’image. Ces critères sont définis comme suit :
- Erreur quadratique moyenne (MSE) : Mean Squared Error
MSE =
1
MN
M
X
i=1
N
X
j=1
(X(i, j) − e
X(i, j))2
, (3.2)
avec :
- X : Image originale,
- e
X : Image débruitée,
- M : Nombre de lignes de l’image,
- N : Nombre de colonnes de l’image,
- (i, j) : positionnement des pixels.
- Rapport signal sur bruit (PSNR) : Peak Signal to Noise Ratio
PSNR = 10 log10
2552
MES
, (3.3)
où 255 est la valeur maximale d’un pixel pour une image codée par 8 bits/pixel
en niveaux de gris.
3.3 Méthodes de débruitage
L’implémentation des codes a été faite sur MATLAB.
3.3.1 Débruitage par l’équation de la chaleur
La figure 3.1 est un exemple de débruitage de l’image Cameraman par l’EDP
de la chaleur (schémas explicite et implicite) avec le nombre d’itérations est fixé
à 50 et le pas de discrétisation en temps est variable. Pour les deux schémas, si
le pas de discrétisation en temps est faible, les zones homogènes sont bien res-
taurées et les contours sont bien conservés, mais par contre si le pas de discré-
tisation en temps est important, les bords sont érodés, toutefois on constate une
légère augmentation du PSNR du schéma implicite, cela s’explique par le faite
24
25. 3.3. MÉTHODES DE DÉBRUITAGE
Image originale Image bruité
Explicite (dt=0.01) Implicite (dt=0.01)
PSNR= 26.60 dB PSNR= 26,67 dB
Explicite (dt=0.2) Implicite (dt=0.2)
PSNR= 19.82 dB PSNR= 19.87 dB
Fig. 3.1 – Images débruitées par l’équation de la chaleur (schèmas implicite et explicite)
avec un pas de discrétisation en temps variable et le nombre d’itérations est fixé à 50
que la méthode implicite est inconditionnellement stable mais il reste très coû-
teux à cause de la taille du système linéaire à résoudre à chaque pas de temps.
Toutefois les calculs sont très réduits par application de l’algorithme de Thomas.
La table 3.1 présente une comparaison en temps d’exécution des deux méthodes
pour résoudre l’EDP par les deux schémas implicites (la méthode par inversion
classique de la matrice du schéma implicite et algorithme de Thomas) pour dif-
férentes valeurs de dt. La figure 3.2 montre que si en augmente le nombre d’ité-
ration en gardant le pas temporel dt fixe, la clarté diminue en éliminant le bruit.
25
26. 3.3. MÉTHODES DE DÉBRUITAGE
Temps de calcul en seconde dt=0.01 dt=0.1 dt=0.5 dt=1
Algorithme d’inversion de la matrice 84.01 37.24 7.24 5.83
Algorithme de Thomas 0.551 0.544 0.541 0.540
Tab. 3.1 – Comparaison du temps de calcul pour les deux schémas implicites avec un
nombre d’itérations égal à 10.
Nous pouvons donc constater que bien qu’étant très efficace sur l’élimination du
bruit, la propagation par l’équation de la chaleur ne permet pas une conservation
des bords de l’image qui s’en retrouve donc altérée. les contours sont endomma-
gés par la diffusion des pixels voisins. Le problème qui se pose est donc comment
conserver les contours d’une image tout en éliminant le bruit sur une image ? La
solution de ce problème consiste à utiliser un modèle de type Pérona-Malik.
Image filtrées Image filtrées Image filtrées
après 10 itérations après 50 itérations après 150 itérations
PSNR= 24,16 dB PSNR= 20,93 dB PSNR= 19,24 dB
Fig. 3.2 – Image Cameraman (256x256) débruitée par l’équation de la chaleur (Schéma
explicite) : Le pas de discrétisation en temps est fixé à 0.1 avec nombre d’itérations va-
riable
3.3.2 Débruitage par le modèle de Pérona-Malik
La figure 3.3 présente une comparaison subjective et objective, entre la diffu-
sion isotrope (image gauche) et la diffusion anisotrope (image droite).
La diffusion anisotrope présente un lissage conditionnel, dont le comportement
est fonction de la norme du gradient de l’image, grâce à la fonction g définie dans
le chapitre 1. Le principe est de diffuser fortement dans les zones à faibles gra-
dients (zones homogènes), et faiblement dans les zones à forts gradients (contours).
Le seuil λ de la fonction g permet de distinguer les zones à faible gradient de celles
à fort gradient. Nous pouvons classifier les résultats obtenus par l’algorithme de
Pérona-Malik dans la figure 3.4 prenant en compte la variation de λ et celle du
26
27. 3.4. BOÎTE À OUTILS IMAGERIE DE MATLAB
Par l’équation de la chaleur Par Perona-Malik
PSNR = 20,93 dB PSNR = 33.30 dB
Fig. 3.3 – Comparaison entre le filtrage par les équations de la chaleur et Pérona-Malik
avec un pas de discrétisation égale 0.001 et le nombre d’itérations est fixé à 50.
nombre d’itérations. Nous constatons que pour T=200 l’image s’en retrouve gran-
dement altérée, en augmentant λ.
Le débruitage d’une image fortement bruitée par Pérona-Malik présente un risque
que le bruit soit interprétée comme un contour, l’augmentation du paramètre λ
altère l’image, voir figure 3.5.
La figure 3.6 montre que pour dt = 0.1, le débruitage par Pérona-Malik donne
de meilleurs résultats pour un nombre d’itérations égal à 20 avec λ est fixé à 2
(figure gauche), et donne de meilleurs résultats pour une valeur de λ égale 2.5
avec le nombre d’itération est fixé à 50 (figure droite).
3.4 Boîte à outils Imagerie de Matlab
La boîte à outils (Image Processing Toolbox) propose un ensemble complet
d’algorithmes et de fonctions destinés au traitement d’images. Parmi les princi-
pales fonctionnalités de cette boîte à outils, on cite :
1. Analyse des images (segmentation, morphologie, statistiques, mesure, etc.)
2. Amélioration d’images, filtrage et restauration
3. Transformations géométriques et méthodes de recalage d’images basées
sur l’intensité
4. Applications de visualisation (visualisation d’images et de vidéos).
27
28. 3.4. BOÎTE À OUTILS IMAGERIE DE MATLAB
λ=20 et T=20 λ=50 et T=20 λ=100 et T=20
PSNR = 33.01 dB PSNR = 32,19 dB PSNR = 31,10 dB
λ=20 et T=100 λ=50 et T=100 λ=100 et T=100
PSNR = 28,53 dB PSNR = 25,65 dB PSNR = 24,71 dB
λ=20 et T=200 λ=50 et T=200 λ=100 et T=200
PSNR = 25,39 dB PSNR = 23,24 dB PSNR = 22,81 dB
Fig. 3.4 – Résultats obtenus par l’algorithme de Pérona-Malik prenant en compte la va-
riation de λ et celle du nombre d’itérations T.
La boîte à outils comprend des routines de filtrage spécialisées et une fonction de
filtrage multidimensionnel généralisée qui gère les types d’image en entiers, offre
de nombreuses options de gestion de l’effet de bords et effectue des convolutions
et corrélations. En utilisant des filtres et des fonctions prédéfinis, on peut :
1. Filtrer avec des opérateurs morphologiques.
2. Déflouter et rendre plus nette l’image.
3. Supprimer le bruit avec un filtrage linéaire, médian ou adaptatif.
28
29. 3.4. BOÎTE À OUTILS IMAGERIE DE MATLAB
Image fortement bruitée λ=20 λ=100
Fig. 3.5 – Images débruitées par Pérona-Malik avec nombre d’itérations fixé à 400.
Fig. 3.6 – Résultats en terme de PSNR avec dt est fixé à 0.1. PSNR en fonction du nombre
d’itérations (figure gauche) et PSNR en fonction de λ (figure droite).
4. Effectuer une égalisation d’histogramme.
5. Remapper la plage dynamique.
6. Ajuster le contraste.
3.4.1 Filtrages d’images
Pour améliorer la qualité visuelle de l’image, on doit éliminer les effets des
bruits en lui faisant subir un filtrage.
Filtre Gaussien : Le filtre gaussien est un filtre isotrope caractérisé par un écart
type σ. Le code ci-dessous présente un exemple de filtrage d’une image à l’aide
du noyau gaussien.
I=imread(’cameraman.tif’) ;
figure(1) ; imagesc(I) ; colormap gray ; title(’Image originale’) ;
29
30. 3.4. BOÎTE À OUTILS IMAGERIE DE MATLAB
[m,n] = size(I) ;
J = imnoise(I, ’gaussian’, 0, 0.001) ; % bruitage d’image
J = im2double(J) ;
figure(2) ; imagesc(J) ; colormap gray ; title(’Image bruitee’) ;
F=fspecial(’gaussian’) ; % créer des filtres prédéfinis
J=imfilter(double(J),F) ; % opération par fenêtre glissante
figure(3) ; imagesc(J) ; colormap gray ;title(’Image filtrer’) ;
La figure 3.7 montre les résultats obtenus.
Image originale Image bruitée Image débruitée
- PSNR= 23.32 dB PSNR= 26.30 dB
Fig. 3.7 – Application du filtre Gaussian
Filtre Median : C’est un filtre non-linéaire qui ne peut pas s’implémenter comme
une convolution. On remplace la valeur d’un pixel par la valeur médiane dans
son voisinage. Afin de réaliser ce filtre sous Matlab on applique le code suivant :
I=imread(’cameraman.tif’) ;
figure(1) ; imagesc(I) ; colormap gray ; title(’Image originale’) ;
[m,n] = size(I) ;
J = imnoise(I, ’gaussian’, 0, 0.001) ;
J = im2double(J) ;
figure(2) ; imagesc(J) ; colormap gray ; title(’Image bruitee’) ;
s= strel(’disk’,1) ;
k=imopen(J,s) ;
n=imclose(k,s) ;
f=imclose(J,s) ;
p=imopen(n,s) ;
30
31. 3.4. BOÎTE À OUTILS IMAGERIE DE MATLAB
figure(3) ; imagesc(p) ; colormap gray ; title(’Image débruitée’) ;
La figure 3.8 montre les résultats obtenus :
Image originale Image bruitée Image débruitée
- SNR= 302.18 SNR= 295.07
Fig. 3.8 – Application du filtre de Median
3.4.2 Détection de contours
Le but de la détection de contours est de repérer les points d’une image nu-
mérique qui correspondent à un changement brutal de l’intensité lumineuse. La
détection des contours d’une image réduit de manière significative la quantité de
données et élimine les informations qu’on peut juger moins pertinentes, tout en
préservant les propriétés structurelles importantes de l’image. Il existe un grand
nombre de méthodes de détection de l’image. Dans ce qui suit quelques méthodes
de la boîte à outils imagerie seront exposées.
Filtre de Sobel : Le principe de ce filtre est que l’opérateur calcule le gradient de
l’intensité de chaque pixel. Ceci indique la direction de la plus forte variation du
clair au sombre, ainsi que le taux de changement dans cette direction. On connait
alors les points de changement soudain de luminosité, correspondant probable-
ment à des bords, ainsi que l’orientation de ces bords. Une application de ce filtre
est implémenté dans le code suivant :
I=imread(’cameraman.tif’) ;
figure(1) ; imagesc(I) ; colormap gray ; title(’Image originale’) ;
[m,n] = size(I) ;
J = imnoise(I, ’gaussian’, 0, 0.001) ;
31
32. 3.4. BOÎTE À OUTILS IMAGERIE DE MATLAB
J = im2double(J) ;
figure(2) ; imagesc(J) ; colormap gray ; title(’Image bruitée’) ;
F=fspecial(’sobel’) ;
J=imfilter(J,F) ;
figure(3) ; imagesc(J) ; colormap gray ;title(’Image débruitée’) ;
La figure 3.9 montre le résultat obtenu.
Image originale Image bruitée Image débruitée
- PSNR= 23.3 dB PSNR= 3.14 dB
Fig. 3.9 – Application du filtre de Sobel
filtre de Prewitt : En terme simple le filtre de Prewitt, calcule le gradient d’in-
tensité lumineuse de l’image à chaque point, donnant la direction et le taux de
la plus grande décroissance. Le résultat nous indique les changements escarpé
(pente raide) de luminosité de l’image et donc étalement des contours probables
de celle-ci. En pratique cette technique est plus fiable et facile à mettre en œuvre
qu’un algorithme plus direct. Techniquement, il s’agit d’un opérateur différen-
tiel discret calculant une approximation du gradient d’intensité lumineuse d’une
image. Afin de réaliser ce filtre sous Matlab on applique le code suivant :
I=imread(’cameraman.tif’) ; figure(1) ;
imagesc(I) ;
colormap gray ;
title(’Image originale’) ;
[m,n] = size(I) ;
J = imnoise(I, ’gaussian’, 0, 0.001) ;
J = im2double(J) ;
figure(2) ; imagesc(J) ; colormap gray ; title(’Image bruitee’) ;
32
33. 3.4. BOÎTE À OUTILS IMAGERIE DE MATLAB
F=fspecial(’prewitt’) ;
J=imfilter(J,F) ;
figure(3) ; imagesc(J) ; colormap gray ; title(’Image debruitee’) ;
La figure 3.10 montre le résultat obtenu :
Image originale Image bruitée Image débruitée
- PSNR= 23.28 dB PSNR= 3.14 dB
Fig. 3.10 – Application du filtre de Prewitt
33
34. Conclusion
Le problème étudié dans ce projet est celui du débruitage d’images numé-
riques corrompues par un bruit blanc gaussien. Les méthodes utilisées pour ré-
cupérer une meilleure image reposent sur des modèles basés sur des EDPs. Ces
équations ont été étudiées dans le cadre de débruitage d’images formulées à par-
tir du processus de diffusion isotrope et anisotrope. Les résultats obtenus par lis-
sage isotrope, sont peu satisfaisants. Il opère en effet de manière identique dans
toutes les directions, et ne possède aucune direction privilégiée, atténuant ainsi
bruit et contours sans distinction. Un modèle de type Pérona-Malik peut remédier
à cet inconvénient. En effet, il permet d’introduire la notion de diffusion aniso-
trope dont le principe est de diffuser fortement dans les zones à faibles gradients
(zones homogènes) et faiblement dans les zones à forts gradients (contours).
La résolution de ces modèles peut être effectuée efficacement en utilisant la mé-
thode des différences finies. Pour l’équation de la chaleur, on a comparé les deux
schémas explicite et implicite. Ce dernier est connu par sa stabilité, mais il de-
mande la résolution d’un système linéaire en chaque pas de temps. On peut
réduire le coût de ce schéma en transformant le problème en deux systèmes li-
néaires avec des matrices tridiagonales qu’on peut résoudre efficacement par l’al-
gorithme de Thomas. Pour le modèle de Pérona-Malik, on a implémenté seule-
ment le schéma explicite en prenant des valeurs de ∆t suffisamment petites pour
assurer la stabilité du schéma. Il serait intéressant d’implémenter le schéma im-
plicite qui est toujours stable et qui donne lieu à un problème non linéaire en
chaque pas de temps qu’on peut résoudre par une méthode de type Newton.
Enfin, on a présenté la boîte à outils Imagerie de Matlab et on a utilisé quelques
fonctions prédéfinies pour le débruitage et la détection des contours des images.
34
35. Annexe (Algorithme de Thomas [6] )
Soit à résoudre un système linéaire Ax = b avec A a une forme tridiagonale
A =
a1 c1 0
e2 a2
...
... cn−1
0 en an
.
Si la factorisation LU de A existe, les matrices L et U sont bidiagonales et ont la
forme
L =
1 0
β2 1
... ...
0 βn 1
, U =
α1 c1 0
α2
...
... cn−1
0 αn
.
Les coefficients αi et βi sont déterminés par les relations de récurrence
α1 = a1, βi =
ei
αi−1
, αi = ai − βici−1, i = 2, . . . , n.
Pour résoudre le système linéaire Ax = b, il est facile maintenant de résoudre les
deux systèmes bidiagonaux Ly = b et Ux = y, pour obtenir les formules suivantes
(Ly = b) : y1 = b1, yi = bi − βiyi−1, i = 2, . . . , n,
(Ux = y) : xn =
yn
αn
, xi =
yi − cixi+1
αi
, i = n − 1, . . . , 1.
Cette technique est connue sous le nom d’algorithme de Thomas. Son coût est de
l’ordre de n opérations.
35
36. Bibliographie
[1] J.-F. Aujol, Traitement d’images par approches variationnelles et équations
aux dérivées partielles. Semestre d’enseignement UNESCO sur le traitement
des images numériques, Avril 2005 à Tunis.
[2] M. Bergounioux, Méthodes mathématiques pour le Traitement d’image,
Cours de Master, Mai 2009.
[3] R. Herbin, Analyse numérique des équations aux dérivées partielles, Univer-
sité Aix Marseille 1, Cours de Master, Décembre 2012.
[4] J.J. Koenderink, The structure of images, Biological Cybernetics, Vol. 50, pp
363-370, 1984.
[5] P. Perona, J. Malik, Scale space and edge detection using anisotropic diffusion,
IEEE transactions on Pattern Analysis and Machine Intelligence, 12, pp 629-
639, 1990.
[6] A. Quarteronni, F. Saleri et P. Gervasio, Calcul scientifique, Springer, 2010.
[7] S. Yesli, Filtrage par Diffusion Anisotropique Appliquée aux images IRM, Mé-
moire de magister, Faculté de génie électrique et d’informatique, Université
Mouloud Mammeri.
36
37. Résumé
Ce projet traite le débruitage d’images numériques corrompues en utilisant
deux modèles basés sur des équations aux dérivées partielles. Le premier modèle
étudié est l’équation de la chaleur, il repose sur un processus de diffusion isotrope
pour un lissage de l’image traitée. Ce modèle présente un inconvénient majeur
car il ne fait pas distinction entre le bruit et les contours de l’image. Pour remé-
dier à cet inconvénient, la notion de diffusion anisotrope a été introduite, dont le
principe est de diffuser fortement dans les zones à faibles gradients (zones ho-
mogènes), et faiblement dans les zones à forts gradients (contours), c’est le cas du
modèle de Pérona-Malik.
La résolution de ces modèles est effectuée en utilisant la méthode des différences
finies. Les schémas utilisés sont implémentés sur Matlab et une comparaison de
ces schémas est faite.
Enfin, un aperçu sur l’utilisation de la boîte à outils Imagerie pour le traitement
d’images est présenté.
37