Vous êtes sur la page 1sur 29

Techniques de debruitage dimages

Humbert Florent
23 janvier 2008
Table des mati`eres
1 Avant-propos 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Theorie 4
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Simplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Theor`eme fondamental (

Equation dEuler-Lagrange) . . . 5
2.2.2 Preuve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Reecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1 Theor`eme . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.2 Preuve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Resolution de lequation . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 Resolution dans un espace discret . . . . . . . . . . . . . . . . . . 6
2.5.1 Discretisation selon t . . . . . . . . . . . . . . . . . . . . . 6
2.5.2 Discretisation selon (x, y) . . . . . . . . . . . . . . . . . . 7
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Application 11
3.1 Type abstrait image . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1 Operations sur le type . . . . . . . . . . . . . . . . . . . . 11
3.1.2 Extension de laccesseur imageLire . . . . . . . . . . . . 12
3.2 Operateurs dierentiel . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.1 Derivee premi`ere . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.2 Derivee seconde . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.3 Derivee directionnelle . . . . . . . . . . . . . . . . . . . . 13
3.3 Presentation de limage . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Methode de Tikhonov . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.1 Theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.3 Application . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 Methode de la variation totale . . . . . . . . . . . . . . . . . . . . 15
3.5.1 Theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5.3 Application . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.6 Methode des hypersurfaces . . . . . . . . . . . . . . . . . . . . . 16
3.6.1 Theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1
TABLE DES MATI
`
ERES 2
3.6.3 Application . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 Conclusion 19
5 Annexe 20
5.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2 Ensembles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2.1 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2.2 Norme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.3 ISNR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.4 Theor`eme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.5 Preuve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.5.1 Calcul de D
nn
(u) et D
n

(u) . . . . . . . . . . . . . . . 22
5.5.2 Preuve du theor`eme fondamental . . . . . . . . . . . . . . 23
5.5.3 Preuve du passage en derivee directionnelle . . . . . . . . 25
Chapitre 1
Avant-propos
1.1 Introduction
Un probl`eme interessant en traitement numerique dimage est la restauration
dimages degradees. Il arrive souvent lors de lacquisition dune image (par pho-
tographie notamment) que limage obtenue soit dierente de limage esperee.
En eet, certains phenom`enes peuvent apparatre. Notamment de bruit (par
exemple lors dune mauvaise reception de donnees), de ou (dus `a une mauvaise
mise au point), ou encore des pertes de qualite (dues `a une mauvaise luminosite).
Les degradations que subissent les images sont en general dans les categories
que lon vient denoncer.
Notre probl`eme consistera donc `a recuperer une image proche de limage
originale `a partir dune image de mauvaise qualite. Dans ce cours, nous ne nous
focaliserons que sur le probl`eme du bruit.
Au debut, les premi`eres methodes de debruitage consistaient `a utiliser un ltre
passe-bas (suppression des hautes frequences) ce qui avait pour inconvenient
dattenuer les contours de limage. Pour parer `a ce probl`eme, des techniques
nouvelles plus performantes ont vu le jour, notamment des methodes utilisant
des diusions anisotropes (qui dependent de la direction) utilisant des equations
aux derivees partielles.
Nous allons partir dune simple equation. Puis nous baserons notre
theorie autour de celle-ci. Elle nous permettra den tirer plusieurs methodes
de restaurations que nous appliquerons.
1.2 Remerciements
Je tiens `a remercier Miles pour les corrections quil a su apporter.
3
Chapitre 2
Theorie
Dans cette partie, nous allons mettre en place les outils necessaires `a un
certain type de restauration par equations aux derivees partielles.
Le type dequations aux derivees partielles que nous allons voir a ete introduit
en traitement numerique dimage il y a une quinzaine dannee, les premi`eres
etaient basees sur les equations physiques de la diusion de la chaleur (methode
de Malik et Perona), puis dautres, plus generales, sont venues.
Je presenterai une classe simple et performante de ces equations basees
sur une methode variationnelle.
Lensemble des notations est disponible en annexe section 5.1 page 20
2.1 Introduction
Dans lensemble du chapitre, nous utiliserons toujours certaines notations.
designera un ouvert de R
2
, tel que soit une courbe fermee de classe
C
1
par morceaux.
designera un reel strictement positif.
f
r
, b, f et f
o
designeront des applications de louvert dans R de classe C
2
bornees et `a variations bornees dans , cest `a dire (f
r
, b, f, f
o
) BV ()
4
2
.
De plus, (f) aura une limite sur qui vaudra 0. On pourra donc
eventuellement prolonger par continuite (f) sur la fronti`ere.
H designera une application de R dans R de classe C
2
.
Soit f
o
limage observee et f
r
limage reelle non degradee. An de chercher
limage reelle f
r
`a partir de f
o
, nous allons chercher `a minimiser lexpression
suivante :
(f) =
__

(f(x, y) f
o
(x, y))
2
dxdy +
__

H((f) (x, y)
2
) dxdy (2.1)
4
2.2. Simplication 5
Que lon peut noter :
(f) =
__

(f f
o
)
2
+
__

H((f)
2
)
= f f
o

2
+
__

H((f)
2
)
Il faut bien noter que la norme . nest pas une norme de fonction mais la
norme euclidienne.
La solution qui minimise cette expression sappelle en general la solution
regularisee. La premi`ere partie de lexpression est bien denie car f et f
o
sont
bornees, la deuxi`eme partie est quant `a elle bien denie car H est continue et
f est `a variation bornee.
Interpretations Dans cette expression, le premier terme sert `a rapprocher la
solution de limage observee et le deuxi`eme terme est un terme de regularisation
qui est dierent selon la valeur donnee `a H. Lorsque limage est bruitee, la valeur
(f) aura tendance `a avoir des pics au point o` u il y a du bruit, ce terme sert
ainsi `a reduire ces pics. De plus, lutilisation de ce terme permet de realiser un
processus anisotrope (qui depend de la direction et de la valeur du gradient),
ce qui est important pour permettre de garder les contours mais deliminer le
bruit.
Dans la litterature classique dans ce domaine, on ne fait en general pas
intervenir le carre de la norme du gradient, mais simplement sa norme. Mais ceci
peut poser de tr`es gros probl`emes de division par 0 que beaucoup ne semblent
pas remarquer.
2.2 Simplication
2.2.1 Theor`eme fondamental (

Equation dEuler-Lagrange)
An dutiliser la propriete precedente pour reconstituer limage, nous allons
utiliser un theor`eme tr`es important permettant d eliminer lintegrale double.
Theor`eme 1 Si (x, y) ,
f
x
(x, y) =
f
y
(x, y) = 0. Alors, f minimise
lequation 2.1 si et seulement si f verie lequation :
div
_
H

((f)
2
) (f)
_
2 (f f
o
) = 0 (2.2)
2.2.2 Preuve
An dalleger la partie theorie, la preuve du theor`eme est accessible en an-
nexe page 23 sous section 5.5.2.
2.3 Reecriture
An de programmer une methode de restauration, on reecrit souvent dune
autre mani`ere lequation 5.1.
2.4. Resolution de lequation 6
2.3.1 Theor`eme
Theor`eme 2 On suppose que (f) ne sannule en aucun point (sauf sur la
fronti`ere f, mais la fonction nest a priori pas denie dans cet ensemble).
On peut donc poser n =
(f)
(f)
et n

son vecteur orthogonal.


En posant x R, (x) = H(x
2
), on dispose du theor`eme suivant :
2 div
_
H

((f)
2
) (f)
_
= div
_

((f))
(f)
(f)
_
=

((f))

2
f
n
2
+

((f))
(f)


2
f
n
2

On pose souvent :
1
2

((f)) = c
n
Et
1
2

((f))
(f)
= c
n

Ce qui permet decrire :

_
c
n

2
f
n
2
+c
n

2
f
n
2

_
2(f f
o
) = 0
2.3.2 Preuve
La preuve est accessible en annexe page 25 sous section 5.5.3.
2.4 Resolution de lequation
Nous allons proposer une methode permettant de resoudre lequation :
2(f f
o
) div
_
H

((f)
2
) (f)
_
= 0
La methode classique de resolution de cette equation et de poser lequation
aux derivees partielles suivantes pour une application u denie de R
+
dans R.
(x, y) , t > 0 ,
u
t
(x, y, t) = (u) = div
_
H

((u)
2
) (u)
_
2(u f
o
)
(x, y) , u(x, y, 0) = f
o
(x, y)
Le but etant de chercher un etat stationnaire `a cette equation.
2.5 Resolution dans un espace discret
2.5.1 Discretisation selon t
Nous nallons pas resoudre directement cette equation mais nous allons cher-
cher une approximation de la solution. Nous allons proposer une methode ba-
sique dapproximation de solution dequation dierentielle qui consiste ` a discretiser
le domaine de t par un pas
t
et `a approximer i, u(x, t, i
t
).
2.5. Resolution dans un espace discret 7
On determine u(x, y, (i + 1)
t
) en fonction de u(x, y, i
t
) en utilisant la
relation :
u(x, y, (i + 1)
t
) = u(x, y, i
t
) +
t
(u)
On ne connat u que sur certains points selon t, mais comme on le connat
sur tout , a priori, (u) est bien denie.
On peut faire une remarque importante sur cette relation. On peut reconnatre
une suite recurrente denie comme suit :
v est une suite de N dans BV ().
F est une fonction denie de lespace BV () dans ce meme espace par :
g BV (), F(g) = g +
t
(g)
Lequation de recurrence est donc :
v
n+1
= F(v
n
)
v
0
= f
0
Ainsi, si v converge, alors F admet un point xe qui sera solution de lequation.
En eet, lensemble BV () est un espace topologique norme complet car ses
elements sont bornes et donc le theor`eme du point xe peut sy appliquer.
On peut montrer que si H admet certaines proprietes, alors v convergera.
2.5.2 Discretisation selon (x, y)
En pratique, on ne connatra f que sur certains points (` a cause de la numerisation
de limage). Cest pourquoi il faut pouvoir denir une approximation de (u).
Dans le cas o` u (f) ne sannule pas. On peut ecrire (u) sous la forme :
(u) =
_
c
n

2
u
n
2
+c
n

2
u
n
2

_
2(u f
o
) = 0
Premi`ere methode
Nous cherchons `a approcher les fonctions

2
u
n
2
et de

2
u
n
2

.
Pour cela, la premi`ere methode consiste `a discretiser

2
u
x
2
,
u
y
,

2
u
y
2
et

2
u
xy
selon un pas h et a appliquer la relation entre ces derivees partielles.
Notation 1 On discretise
u
x
par
D
x
(u)(x, y) =
1
2h
(u(x +h, y) u(x h, y))
La precision est en o(h
2
).
Notation 2 On discretise
u
y
par
D
y
(u)(x, y) =
1
2h
(u(x, y +h) u(x, y h))
2.5. Resolution dans un espace discret 8
Notation 3 On discretise

2
f
x
2
par
D
xx
(f)(x, y) =
1
h
2
(f(x +h, y) 2f(x, y) +f(x h, y))
Qui est en o(h
2
).
Notation 4 On discretise

2
f
y
2
par
D
yy
(f)(x, y) =
1
h
2
(f(x, y +h) 2f(x, y) +f(x, y h))
Notation 5 Et nalement

2
f
xy
par :
D
xy
(f)(x, y) =
1
h
2
(f(x +h, y +h) f(x +h, y) f(x, y +h) +f(x, y))
Qui est en o(h) o` u bien par :
D
xy
(f)(x, y) =
1
4h
2
(f(x+h, y+h)f(x+h, yh)f(xh, y+h)+f(xh, yh))
Qui est en o(h
2
).
Ainsi, on peut ecrire (u) :
(u)(x, y, t) = c
n
(x, y) D
nn
(u)(x, y, t) +c
n

(x, y) D
n

(u)(x, y, t)
O` u :
D
nn
(u) =
1
(u)
2
_
D
x
(u)
2
D
xx
(u) + 2D
x
(u)D
y
(u)D
xy
(u) +D
y
(u)
2
D
yy
(u)
_
D
n

(u) =
1
(u)
2
_
D
x
(u)
2
D
xx
(u) 2D
x
(u)D
y
(u)D
xy
(u) +D
y
(u)
2
D
yy
(u)
_
Et
(u) =
_
D
x
(u)
2
+D
y
(u)
2
Une preuve de cette propriete est disponible en annexe 22 section 5.5.1.
Deuxi`eme methode
Cette methode a ete utilisee dans le code source. Elle repose sur une ap-
proximation utilisee par Sapiro et Tannenbaum.
Determination de D
nn
(u) Nous approchons D
nn
(u) par un pas h en utili-
sant la formule suivante :
D
nn
(u)(x, y) =
4
u(x h, y h) +
2
u(x, y h)
+
3
u(x +h, y h) +
1
u(x h, y)
4
0
u(x, y) +
1
u(x +h, y)
+
3
u(x h, y +h) +
2
u(x, y +h)
+
4
u(x +h, y +h)
2.5. Resolution dans un espace discret 9
Avec au point (x, y) :

0
= 1/2

1
= 2
0

_
D
y
(u)
(u)
_
2

2
= 2
0

_
D
x
(u)
(u)
_
2

3
=
1
2
_
D
x
(u)
(u)
D
y
(u)
(u)
+ 1 2
0
_

4
=
1
2
_
1 2
0

D
x
(u)
(u)
D
y
(u)
(u)
_
Il y a en fait plusieurs possibilites de choix de
0
, jai choisi la valeur proposee
par Sapiro et Tannenbaum,
0
= 1/2.
Determination de D
n

(u) Nous approchons cette derivee directionnelle


par la meme methode que precedemment.
D
n

(u)(x, y) =
4
u(x h, y h) +
2
u(x, y h)
+
3
u(x +h, y h) +
1
u(x h, y)
4
0
u(x, y) +
1
u(x +h, y)
+
3
u(x h, y +h) +
2
u(x, y +h)
+
4
u(x +h, y +h)
Avec au point (x, y) :

0
= 1/2

1
= 2
0

_
D
x
(u)
(u)
_
2

2
= 2
0

_
D
y
(u)
(u)
_
2

3
=
1
2
_

D
x
(u)
(u)
D
y
(u)
(u)
+ 1 2
0
_

4
=
1
2
_
1 2
0
+
D
x
(u)
(u)
D
y
(u)
(u)
_
Nous avons choisi le meme
0
que precedemment.

Ecriture de On connait `a present D


nn
et D
n

, on peut donc ecrire (u)


sous la forme :
(u)(x, y, t) = c
n
(x, y) D
nn
(u)(x, y, t) +c
n

(x, y) D
n

(u)(x, y, t)
2.6. Conclusion 10
2.6 Conclusion
On dispose `a present dune mani`ere de resoudre de mani`ere plus ou moins
parfaite lequation initiale. Il faudra de nombreuses iterations dans le calcul de
u pour approcher u `a linni selon t. Mais en r`egle generale, u converge assez
rapidement. Il faudra rarement plus de 500 iterations.
Pour recapituler, on choisit une fonction , puis on pose :
(u)(x, y, t) = c
n
(x, y) D
nn
(u)(x, y, t) +c
n

(x, y) D
n

(u)(x, y, t)
Avec :
c
n
=
1
2

((f))
Et
c
n

=
1
2

((f))
(f)
On calcule de mani`ere iterative :
v
n+1
= v
n
+
t
(v
n
)
v
0
= f
0
O` u f
0
est limage originale.
Chapitre 3
Application
Dans cette partie, nous allons utiliser les theor`emes demontres dans la par-
tie theorique pour permettre la restauration dimage bruitee. Chaque section
denira une methode de restauration qui sera decoupee en partie theorie, partie
algorithmique et partie exemples dapplications et critiques de la methode.
3.1 Type abstrait image
An de comprendre les algorithmes dans les sections suivantes. Nous allons
denir un type abstrait de donnees ImageMono, qui correspondra `a une image
mono couleur (avec un seul canal).
3.1.1 Operations sur le type
Nous listons lensemble des operations sur le type.
Constructeur
imageCreer(Entier largeur, Entier hauteur) -> ImageMono creera une
image dune certaine largeur et dune certaine hauteur.
Parfois, on utilisera la notation image1 = image2 pour copier toute limage
2 dans limage 1.
Accesseurs
imageLire(Image i, Entier x, Entier y) -> R eel permettra de lire une
couleur de type r eel au position (x, y). Cette operation est denie a priori
uniquement pour x entier entre 0 et largeur 1, et pour y entier entre 0 et
longueur 1.
Mais en pratique, on etend souvent cette fonction pour permettre de calculer
plus simplement les derivees partielles.
imageEcrire(Image i, Entier x, Entier y, R eel couleur) permettra
decrire une couleur au position (x, y).
11
3.2. Operateurs dierentiel 12
imageLargeur(Image i) -> Entier permettra de determiner la largeur dune
image.
imageHauteur(Image i) -> Entier permettra de determiner la hauteur dune
image.
Si limage est mono couleur, lors du chargement de limage, les couleurs
seront a priori bornees (par exemple par 0 et 255). Mais pour les calculs, il vaut
mieux ne pas borner les resultats. Cest pourquoi on travaille sur un type reel.
3.1.2 Extension de laccesseur imageLire
Pour permettre decrire plus facilement certains operateurs (par exemple
pour les dierentielles), on etendra laccesseur imageLire.
Si m est la largeur de limage et n sa longueur. On denit :
(p, q) / [[0, m1]][[0, n1]], imageLire(image, p, q) = imageLire(image, p

, q

)
O` u le couple (p

, q

) est un element de [[0, m 1, ]][[0, n 1]] et minimise la


distance (p p

, q q

).
On peut aussi simplement letendre `a 0, mais cela peut avoir de tr`es mauvais
eets si il y a beaucoup detapes dans les algorithmes.
3.2 Operateurs dierentiel
On denit les operateurs dierentiels suivant :
3.2.1 Derivee premi`ere
Soit im une image.
On denit les derivees premi`eres au point (x, y) comme suit :
Dx(im, x, y) =
1
2
(imageLire(im, x + 1, y) imageLire(im, x 1, y))
Dy(im, x, y) =
1
2
(imageLire(im, x, y + 1) imageLire(im, x, y 1))
On denit egalement :
NormeGrad(im, x, y) =
_
Dx(im, x, y)
2
+Dy(im, x, y)
2
3.2.2 Derivee seconde
On denit les derivees secondes comme suit :
Dxx(im, x, y) = imageLire(im, x+1, y)2imageLire(im, x, y)+imageLire(im, x1, y)
3.3. Presentation de limage 13
Dyy(im, x, y) = imageLire(im, x, y+1)2imageLire(im, x, y)+imageLire(im, x, y1)
Dxy(im, x, y) =
1
4
(imageLire(im, x + 1, y + 1) imageLire(im, x + 1, y 1)
imageLire(im, x 1, y + 1) +imageLire(im, x 1, y 1))
3.2.3 Derivee directionnelle
Comme dans la partie theorie, il y a deux methodes pour determiner les
derivees directionnelles.
Premi`ere methode
Si NormeGrad(im, x, y) vaut 0. Alors ces derivees sont non denies. Sinon,
en designant im, x, y par u :
Dnn(im, x, y) =
1
NormeGrad(u)
2
_
Dx(u)
2
Dxx(u) + 2Dx(u)Dy(u)Dxy(u) +Dy(u)
2
Dyy(u)
_
Dntnt(im, x, y) =
1
NormeGrad(u)
2
_
Dx(u)
2
Dxx(u) 2Dx(u)Dy(u)Dxy(u) +Dy(u)
2
Dyy(u)
_
Deuxi`eme methode
Vous pouvez voir directement la partie theorie page 8 concernant le calcul
de ces derivees directionnelles. Il sura de remplacer h par 1.
3.3 Presentation de limage
Dans ce chapitre, nous allons tenter de restaurer limage bruitee 3.1
3.4 Methode de Tikhonov
Nous allons presenter une premi`ere methode de restauration proposee par
Tikhonov en 1977.
3.4.1 Theorie
Tikhonov propose de prendre x R
2
, H(x) = x. Dans la litterature clas-
sique, cest : (x) = x
2
avec (x) = H(x
2
).
On a donc : x R, H

(x) = 1.
Cette fonction est C
1
, on peut donc appliquer le theor`eme fondamental.
Minimiser :
(f) =
__

(f f
o
)
2
+
__

(f)
2
3.4. Methode de Tikhonov 14
Fig. 3.1 Lenna bruitee
Revient `a resoudre :
div ((f)) 2(f f
o
) = 0
Soit :
(f) 2(f f
o
) = 0
Pour cela, on peut directement utiliser la methode de resolution sans les
derivees directionnelles, cest `a dire sans faire lhypoth`ese que (f) ne sannule
pas.
3.4.2 Algorithme
Lalgorithme prend en entree limage bruitee, le nombre diteration `a eec-
tuer, le param`etre et le taux de discretisation dt.
tikhonov(Image im, R eel pos dt, R eel pos alpha, Entier pos iteration)
-> Image
sortie = im
tempo = im
Pour n = 0 `a iteration
|Pour y = 0 `a imageLongueur(im)-1
| Pour x = 0 ` a imageLargeur(im)-1
| dxx = Dxx(sortie, x, y)
| dyy = Dyy(sortie, x, y)
| imageEcrire(tempo, x, y, dt * (alpha * (dxx + dyy))
| - 2(ImageLire(sortie, x, y) - imageLire(im, x, y))
| + imageLire(sortie, x, y))
|sortie = tempo
Retourner sortie
`
A noter que dans cet algorithme, on prendra en general dt assez petit et
alpha assez grand. Ainsi, le terme ImageLire(sortie, x, y)imageLire(im, x, y)
va souvent etre negligeable. Cest pourquoi on peut ecrire lalgorithme sous la
forme suivante :
3.5. Methode de la variation totale 15
tikhonov(Image im, R eel pos dt, R eel pos alpha, Entier pos iteration) -> Image
sortie = im
tempo = im
Pour n = 0 `a iteration
|Pour y = 0 `a imageLongueur(im)-1
| Pour x = 0 ` a imageLargeur(im)-1
| dxx = Dxx(sortie, x, y)
| dyy = Dyy(sortie, x, y)
| imageEcrire(tempo, x, y, dt * (alpha * (dxx + dyy)
| /* on retire le terme : - 2(ImageLire(sortie, x, y) - imageLire(im, x, y))*/
| + imageLire(sortie, x, y))
|sortie = tempo
Retourner sortie
3.4.3 Application
Avec le premi`ere algorithme, en utilisant :
n=100
epsilon = 0.01
alpha = 5
On obtient la gure 3.2.
Fig. 3.2 Correction par Tikhonov, ISNR = -0.97
On peut noter que cette methode a tendance `a rendre ou limage. Les details
disparaissent.
Nous avons utilise un indice pour quantier la restauration, lISNR. Son
calcul est detaille en annexe page 21 section 5.3.
3.5 Methode de la variation totale
Nous allons voir une methode de meilleure qualite que la precedente.
3.5.1 Theorie
Cette methode sappuie sur une theorie physique. Nous considerons que le
gradient de limage ne sannule pas. On choisit : H(x) =

x, ce qui revient au
meme que de prendre (x) = x.
3.6. Methode des hypersurfaces 16
On a ainsi les coecients suivants :
c
nn
= 0
Et
c
n

=
1
2 (f)
Le probl`eme est quen general, le gradient dune image sannule tr`es souvent
en certains points.
Mais, on peut remarquer que si le gradient sannule, alors cest que limage
est localement constante dans toutes les directions. Cela signie quil ny a
localement pas de bruit. Il ny a donc pas besoin de retoucher `a limage. Avec
cette armation, on peut etendre la theorie `a toute image en ne considerant
que les points ayant un gradient superieur `a un donne.
3.5.2 Algorithme
Nous pouvons `a present denir lalgorithme corrigeant limage.
variation(Image im, R eel pos dt, R eel pos alpha, Entier pos iteration) -> Image
sortie = im
tempo = im
Pour n = 0 `a iteration
|Pour y = 0 `a imageLongueur(im)-1
| Pour x = 0 ` a imageLargeur(im)-1
| grad = NormeGrad(tempo, x, y)
| Si grad> epsilon alors
| cnt = 1/(2 * grad)
| dnt = Dntnt(sortie, x, y)
| imageEcrire(tempo, x, y, dt * (alpha * (dnt * cnt)
| - 2(ImageLire(sortie, x, y) - imageLire(im, x, y))
| + imageLire(sortie, x, y))
|sortie = tempo
Retourner sortie
3.5.3 Application
En utilisant :
n=400
dt = 0.001
alpha = 250
epsilon = 0.1
On obtient la gure 3.3.
On peut remarquer que le resultat est bien meilleur quavec la methode de
Tikhonov. Malheureusement, il necessite un grand nombre diterations, ce qui
peut-etre parfois lent.
3.6 Methode des hypersurfaces
La methode des hypersurfaces donne des resultats de tr`es bonne qualite.
3.6. Methode des hypersurfaces 17
Fig. 3.3 Correction par variation totale, ISNR = 2.02
3.6.1 Theorie
Nous choisissons une fonction H denie par :
H(x) =

1 +x
Cest `a dire une fonction denie par :
(x) =
_
1 +x
2
On a ainsi les coecients denies par :
c
nn
=
1
2
_
1 +(f)
2
_
3/2
Et
c
n

=
1
2
_
1 +(f)
2
De la meme mani`ere que precedemment, on peut en deduire une extension
de la theorie `a des images ayant un gradient qui sannule en realisant un test
sur (f).
3.6.2 Algorithme
On en deduit lalgorithme suivant :
hypersurfaces(Image im, R eel pos dt, R eel pos alpha, Entier pos iteration) -> Image
sortie = im
tempo = im
Pour n = 0 `a iteration
|Pour y = 0 `a imageLongueur(im)-1
| Pour x = 0 ` a imageLargeur(im)-1
| grad = NormeGrad(im, x, y)
| Si grad> epsilon alors
| cnn = 1/(2 * sqrt(1+grad^2))
| cnt = 1/(2 * (1+grad^2 * sqrt(1+grad^2)))
| dnt = Dntnt(sortie, x, y)
3.6. Methode des hypersurfaces 18
| dnn = Dnn(sortie, x, y)
| imageEcrire(tempo, x, y, dt * (alpha * (dnt * cnt + cnn * dnn))
| - 2(ImageLire(sortie, x, y) - imageLire(im, x, y))
| + imageLire(sortie, x, y)
|sortie = tempo
Retourner sortie
3.6.3 Application
En utilisant les valeurs suivantes :
n=200
dt = 0.001
alpha = 250
epsilon = 0.1
On obtient la gure 3.4.
Fig. 3.4 Correction par la methode des hypersurfaces, ISNR = 2.005
Cette methode donne des resultats surprenants et de bonne qualite. Limage
semble meilleure quavec la methode de la variation totale. Cependant, sur ce
jeu de test, lindice ISNR montre que la methode de la variation totale est
legerement plus performante (2.02 au lieu de 2.005).
Chapitre 4
Conclusion
Nous avons presente une serie doperation permettant le debruitage dimages.
La derni`ere methode proposee, celle des hypersurfaces, semble etre celle qui
donne les meilleurs resultats.
Il faut noter que lon peut etendre la theorie `a de nombreuses autres fonctions
H que je nai pas detaillees dans ce cours.
Jesp`ere ainsi que vous avez pu voir en quoi les equations dierentielles
peuvent etre utiles en traitement numerique de limage.
19
Chapitre 5
Annexe
5.1 Notations
Voici une petite liste de notations (assez classiques) utilisees dans ce cours.
5.2 Ensembles
Notation 6 (Ensemble de fonctions) On notera F(E, F) lensemble des fonc-
tions de lensemble E dans lensemble F.
Notation 7 (Ensembles classiques) Les ensembles C, R, N et Z designent
respectivement lensemble des complexes, des reels, des entiers naturels et des
entiers relatifs.
Lensemble K designera C o` u R.
Notation 8 (Ensemble `a variation bornee) Soit un ouvert de R
2
On
designera par BV ()
n
lensemble des applications C
n
(n > 0) ` a variation
bornee. Lensemble BV () designera simplement BV ()
1
.
Notation 9 (Ensemble dentier) On note [[n, m]] lensemble des entiers com-
pris entre n et m. (Donc [[n, m]] = [n, m] Z)
Notation 10 (Fronti`ere) Soit F un ensemble ferme. On note F la fronti`ere
de F.
On peut eventuellement etendre cette denition ` a des ouverts bornes.
5.2.1 Fonctions
Notation 11 (Gradient) Soit f F(, R) une application de classe C
1
et o` u
est un ouvert de R
2
, on note : (f) le gradient de f deni par :
(x, y) , (f) (x, y) =
_
f
x
(x, y),
f
y
(x, y)
_
Notation 12 (Divergence) Soit f F(, R
2
) une application de classe C
1
et o` u est un ouvert de R
2
. f peut secrire f = (f
x
, f
y
) o` u f
x
F(, R) et
f
y
F(, R). On note : div () loperateur divergence deni par :
20
5.3. ISNR 21
(x, y) , div (f) (x, y) =
f
x
x
(x, y) +
f
y
y
(x, y)
Notation 13 (Produit scalaire) On notera <, > le produit scalaire usuel entre
deux vecteurs de R
n
deni par :
u R
n
, v R
n
, < u, v >=
n

i=1
u
n
v
n
Notation 14 (Derivee partielle) Soit u un vecteur de R
2
non nul. Soit f
une application de classe C
1
de R
2
dans R.
On note :
f
u
lapplication denie par
f
u
=< (f) , u >
Notation 15 (Operateur Laplacien) Soit f une application C
2
denit sur
un ouvert de R
2
` a valeurs dans R
2
, on note loperateur laplacien deni
par :
(x, y) , (f)(x, y) =

2
f
x
2
(x, y) +

2
f
y
2
(x, y)
5.2.2 Norme
Notation 16 (Norme de vecteur) Soit v un vecteur de R
n
.
On note :
v =

_
n

i=1
v
2
i
Notation 17 (Norme de fonction) Dans le cas dexistence de cette expres-
sion, on denit la norme suivante pour une application f denie sur une partie
U de R
2
` a valeurs dans R.

f
2
=
__
U
|f(x, y)|
2
dxdy
5.3 ISNR
An de quantier la qualite de la restauration pour une image bruitee, on
utilise parfois une mesure.
Soit f limage originale, g limage modiee et f

limage restoree. Alors


lISNR
1
est denie par :
ISNR(f, f

, g) = 10 log
10

+
i=

+
j=
(f(i, j) g(i, j))
2

+
i=

+
j=
(f(i, j) f

(i, j))
2
Si limage corrigee est proche de limage originale, alors le denominateur va
etre proche de 0, et donc lISNR sera proche de linni (il faut noter quavec le
logarithme en base 10, cette fonction augmente lentement).
1
Improvement Signal to Noise Ratio
5.4. Theor`eme 22
Si limage corrigee est exactement identique `a limage bruitee, alors la frac-
tion sera egale `a 1, donc lISNR sera egale `a 0.
Enn, si limage restoree est vraiment dierente de limage originale, le
denominateur sera assez important, lISNR tendra vers moins linni.
On peut resumer :
Si lISNR est negatif, la restauration est mauvaise ;
Si lISNR est nulle, alors il ny a pas eu de restauration (on reste proche
de limage bruitee) ;
Si lISNR est positif, alors la restauration est de bonne qualite.
`
A noter
que lISNR evolue lentement `a cause du logarithme.
5.4 Theor`eme
Theor`eme 3 (Green-Riemann) Soient :
D une partie de R
2
limitee par une courbe parametree fermee (C) de classe
C
1
par morceaux parcourue dans le sens direct.
un ouvert de R
2
tel que D
(P, Q) F(, D) de classe C
1
.
Alors :
_
(C)
P(x, y)dx +Q(x, y)dy =
__
D
_
Q
x
(x, y)
P
y
(x, y)
_
dxdy
5.5 Preuve
5.5.1 Calcul de D
nn
(u) et D
n

(u)
On montre que :
D
nn
(u)(x, y) =
1
(u)
2
_
D
x
(u)
2
D
xx
(u) + 2D
x
(u)D
y
(u)D
xy
(u) +D
y
(u)
2
D
yy
(u)
_
Rappelons dej` a que : D
v
(u) =< (u) , v > o` u v est un vecteur de R
2
.
Comme n = (u) / (u) et D
n
(u) = (u)
On en deduit que (an de simplier les notations, nous avons omis de noter
(x, y)) :
D
nn
(u) = < ((u)) ,
(u)
(u)
>
Or :
((u)) =
__
_
_
_
_
D
x
(u)
2
+D
y
(u)
2
_
_
_
_
_
=
1
2 (u)
_
2D
xx
(u)D
x
(u) +D
x
(D
y
(u)
2
), 2D
yy
(u)D
y
(u) +D
y
(D
x
(u)
2
)
_
=
1
2 (u)
_
2D
x
(u)
2
+ 2D
xy
(u)D
y
(u), D
y
(u)
2
+ 2D
xy
(u)D
x
(u)
_
5.5. Preuve 23
Ici, nous avons directement applique la propriete (
_
(u))

=
u

u
En eectuant le produit scalaire avec (u) / (u) = (D
x
(u), D
y
(u)) / (u).
On en deduit directement lexpression :
D
nn
(u)(x, y) =
1
(u)
2
_
D
x
(u)
2
D
xx
(u) + 2D
x
(u)D
y
(u)D
xy
(u) +D
y
(u)
2
D
yy
(u)
_
Le calcul de D
n

(u) peut se faire de la meme mani`ere, ou bien se faire en


utilisant la propriete :
(f) = D
nn
(f) +D
n

(f)
(le laplacien dune fonction est independant de la base dans lequel on lexprime).
5.5.2 Preuve du theor`eme fondamental
On rappelle le theor`eme :
Si (x, y) ,
f
x
(x, y) =
f
y
(x, y) = 0. Alors, f minimise lequation 2.1 si
et seulement si f verie lequation :
div
_
H

((f)
2
) (f)
_
2 (f f
o
) = 0 (5.1)
Si f minimise lequation 2.1, alors pour tout g BV ()
2
, les applications

g
de R dans R denies par
g
() = (f +g) verient :

g
(0) = 0
Ainsi, comme toutes les fonctions f, f
o
et g sont dans BV (), on peut
permuter lintegrale et la derivee et ecrire :

g
() =

__

(f +g f
o
)
2
+

__

H((f +g)
2
)
=
__

(f +g f
o
)
2

+
__

H((f +g)
2
)

Posons :

1
() =
__

(f +g f
o
)
2
Et

2
() =
__

H((f +g)
2
)
On a donc dans ce cas :

g
=
1
+

2
Calcul de la derivee de
1
Nous allons determiner la valeur de la derivee de
1
en 0.
R,

1
() =
__

(f +g f
o
)
2

=
__

2g(f +g f
o
)
5.5. Preuve 24
Do` u :

1
(0) =
__

2g(f f
o
)
Calcul de la derivee de
2
Le calcul et la simplication de la derivee de
2
est plus complexe que
pour
1
. Nous allons en eet utiliser certains theor`emes complexes, tel que le
theor`eme de Green-Riemann.
R,

2
() =
__

H((f +g)
2
)

()
=
__

(f +g)
2

() H

((f +g)
2
)
Or,
(f +g)
2
=
_
f
x
+
g
x
_
2
+
_
f
y
+
g
y
_
2
Do` u :
(f +g)
2

() =
g
x
_
f
x
+
g
x
_
+
g
y
_
f
y
+
g
y
_
Ainsi, en 0, on trouve :

2
(0) =
__

< (g) , (f) > H

((f)
2
)
Nous allons realiser une integration par partie en utilisant les deux egalites
suivantes :

x
_
g
f
x
H

((f)
2
)
_
=
g
x
f
x
H

((f)
2
)+g

2
f
x
2
H

((f)
2
)+g
f
x

x
_
H

((f)
2
)
_
Et

y
_
g
f
y
H

((f)
2
)
_
=
g
y
f
y
H

((f)
2
)+g

2
f
y
2
H

((f)
2
)+g
f
y

y
_
H

((f)
2
)
_
De plus, en utilisant la decomposition de la divergence :
div
_
H

((f)
2
) (f)
_
=

x
_
H

((f)
2
)
f
x
_
+

y
_
H

((f)
2
)
f
y
_
On en deduit legalite :

x
_
g
f
x
H

((f)
2
)
_
+

y
_
g
f
y
H

((f)
2
)
_
=
< (f) , (g) > H

((f)
2
) +g div
_
H

((f)
2
) (f)
_
Do` u :

2
(0) =
__

x
_
g
f
x
H

((f)
2
)
_
+

y
_
g
f
y
H

((f)
2
)
_
gdiv
_
H

((f)
2
) (f)
_
5.5. Preuve 25
Utilisation du theor`eme de Green-Riemann Comme :
est un ouvert
est une courbe fermee de classe C
1
.
g est C
1
,
f
x
et
f
y
sont C
1
, (f)
2
est egalement de classe C
1
H est C
2
.
On en deduit que lon peut appliquer le theor`eme de Green-Riemann.
Par application de ce theor`eme, on obtient :
__

x
_
g
f
x
H

((f)
2
)
_
+

y
_
g
f
y
H

((f)
2
)
_
dxdy =
_
C
g(x, y)
f
y
(x, y)H

((f) (x, y)
2
)dx+g(x, y)
f
x
(x, y)H

((f) (x, y)
2
)dy = 0
Ce terme est nul `a cause des conditions des derivees partielles de f sur les bords.
On en deduit donc ainsi :

2
(0) =
__

g div
_
H

((f)
2
) (f)
_
Presque la n
On en deduit donc que :
0 =
g
(0) =
__

2g(f f
o
) g div
_
H

((f)
2
) (f)
_
Comme cette propriete est vraie pour tout g bornee et `a variation bornee,
on en deduit :
2(f f
o
) div
_
H

((f)
2
) (f)
_
= 0
La reciproque ne sera pas demontree ici. On ne peut pas remonter directe-
ment les etapes car on pourra seulement montrer que f minimise localement.
5.5.3 Preuve du passage en derivee directionnelle
Nous rappelons que nous cherchons `a demontrer la propriete :
2 div
_
H

((f)
2
) (f)
_
= div
_

((f))
(f)
(f)
_
=

((f))

2
f
n
2
+

((f))
(f)


2
f
n
2

An dalleger les notations, nous allons noter : f


x
=
f
x
, f
y
=
f
y
, f
xx
=

2
f
x
2
,
f
yy
=

2
f
y
2
et f
xy
=

2
f
xy
.
5.5. Preuve 26
Premi`ere egalite
Nous allons montrer dans un premier temps la premi`ere egalite.
Comme x R, (x) = H(x
2
), on en deduit par derivation que :
x R,

(x) = 2xH

(x
2
)
On peut remplacer x par (f), ce qui donne :

((f)) = 2 (f) H

((f)
2
)
Comme (f) ne sannule pas, on en deduit :
2H

((f)
2
) =

((f))
(f)
Do` u :
2 div
_
H

((f)
2
) (f)
_
= div
_

((f))
(f)
(f)
_
Deuxi`eme egalite
On decompose loperation de divergence :
div
_

((f))
(f)
(f)
_
=

x
_

((f))
(f)
_
f
x
+

y
_

((f))
(f)
_
f
y
+

((f))
(f)
(f)
Hors, on sait que :

((f))
x
=

((f)) (f
x
f
xx
+f
y
f
xy
)
On en deduit donc que :

x
_

((f))
(f)
_
=
1
(f)
2
_

((f))
x
(f)

((f))
(f)
(f
x
f
xx
+f
y
f
xy
)
_
=
1
(f)
2
(

((f))

((f))
(f)
) (f
x
f
xx
+f
y
f
xy
)
Ainsi,
div
_

((f))
(f)
(f)
_
=
1
(f)
2
(

((f))

((f))
(f)
)
_
(f
x
)
2
f
xx
+ 2f
x
f
y
f
xy
+ (f
x
)
2
f
xx
_
+

((f))
(f)
(f)
5.5. Preuve 27
Rappel 1 (Derivee seconde directionnelle) Nous rappelons que pour une
application f de classe C
2
:

2
f
n
2
=
1
(f)
2
_
(f
x
)
2
f
xx
+ 2f
x
f
y
f
xy
+ (f
x
)
2
f
xx
_
Rappel 2 Nous rappelons egalement que pour une application f de classe C
2
tel que (f) ne sannule pas, legalite suivante :
(f) =

2
f
n
2
+

2
f
n
2

En utilisant ces deux rappels, on peut en deduire ce que lon cherchait.


div
_

((f))
(f)
(f)
_
=

((f))

2
f
n
2
+

((f))
(f)


2
f
n
2

Table des gures


3.1 Lenna bruitee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Correction par Tikhonov, ISNR = -0.97 . . . . . . . . . . . . . . 15
3.3 Correction par variation totale, ISNR = 2.02 . . . . . . . . . . . 17
3.4 Correction par la methode des hypersurfaces, ISNR = 2.005 . . . 18
28