Filtre médian et mouvement par courbure des images numériques
sujet proposé par Anael Dossevi [email protected]
Une image numérique est un objet très irrégulier pour de nombreuses raisons.
En effet de nombreuses imperfections, dues par exemple au bruit de mesure lors de l’acquisition de l’image, au flou crée par des mouvements, même infimes, ou encore à la quantification (en données binaires, en entiers, en réels...), compliquent énormement l’analyse d’images et en particulier la détection de formes.
Dans le but de passer outre ces problèmes et simplifier la tâche, l’une des idées les plus simples est de « dégrader » l’image de manière contrôlée, afin de ne garder que les détails se trouvant au-delà d’une échelle choisie. Ces techniques sont appelées des « filtrages d’images ».
Nous allons ici étudier l’exemple d’un filtre assez évolué appelé le filtre mé- dian. Celui-ci a la particularité de faire partie d’une des classes de filtres les plus intéressantes puisque, notamment et comme on le verra, elle est invariante par isométrie et changement de contraste. Après avoir montré quelques propriétés de ce filtre, nous montrerons, à partir de quelques résultats que nous admettrons, que cet transformation est équivalente à un mouvement par courbure, autrement dit qu’elle fait evoluer les courbes de niveau de l’image en fonction de leur courbure.
Dans tout ce projet, nous supposerons qu’une image est une application u : Ω 7→ Roù Ωest un pavé (fermé) de R2.
1 Opérateurs morphologiques
Commençons par rappeler ce qu’est la médiane d’un ensemble.
Définition 1 SoitX un ensemble de réels. On appelle la médiane deX pour une certaine mesure m sur R le réel :
medmX = inf
λ∈R, m({x∈X, x > λ})≥ 1 2m(X)
Définissons maintenant la médiane d’une fonction en 1 point.
Définition 2 Soit u une image sur Ω. On définit pour tout x ∈ Ω, la médiane de u(x), notée medu(x), par
medu(x) = sup
B∈B
y∈Binf u(x+y)
où B= n
X ⊂R2,|X∩B| ≥ π 2
o
avec |.| la mesure de Lebesgue dans R2 et B est la boule unité de R2.
Question 1 Pour tout µ∈R on note χµ la ligne de niveau µ de u définie par χµ={x∈Ω, u(x)≥µ}et B(x)est la boule de rayon 1 et de centrex. Démontrer que :
medu(x) = supn
λ,|χλ(u)∩B(x)| ≥ π 2
o
autrement dit que la définition de la médiane pour une image est cohérente avec la définition habituelle donnée à la définition 1.
Question 2 Montrer que med est un automorphisme continu de C1(Ω) muni de la norme k.k∞
Définition 3 Soit T une application sur l’ensemble des images sur Ω. On dira que :
1. T est monotone si u⊂v ⇒T(u)⊂T(v)
2. T est invariant par translation si T(τau) =τa(T u), oùτa est la translation de vecteur a.
3. T est invariant par changement de contraste si pour toute application g croissante continue (un changement de contraste) T(g◦u) = g◦T(u)
On dit que T est morphologique si elle vérifie ces 3 propriétés.
Question 3 Montrer que med est morphologique.
La classe des opérateurs morphologiques est une classe d’opérateurs très im- portant en traitement des images. En particulier, la notion d’invariance par chan- gement de contraste est celle qui permet de conserver les formes géométriques, plus précisément les lignes de niveaux (i.e. les ensemblesχλ ={x∈Ω t.q. u(x)> λ}).
Ainsi l’étude des formes après un filtrage d’image ne sera pertinent que si celui-ci est invariant par changement de contraste.
2 Quelques rappels de géométrie plane
Cette partie est facultative. Ceux qui la feront auront des bonifications mais elle ne comptera pas dans le barème global. Le but de cette partie est de retrouver quelques résultats classiques de géométrie plane dont vous aurez besoin pour la suite.
Nous allons avoir besoin de quelques résultats sur la notion de courbure en dimension 2.
Proposition 1 (qu’on admettra) Soit C une courbe deR2, définie parC(t) = (x(t), y(t)). Alors,le rayon de courbure en un point x∈[a, b] est égal à
κ(t) = y00x0−y0x00 (x02+y02)3/2.
Rappelons également ce petit théorème classique et archi-connu d’analyse.
Théoreme 2 (Théorème des fonctions implicites) Soitu:R2 7→R, et(x0, y0)∈ R2. On suppose queuest de classeC1au voisinage de(x0, y0)et tel queDu(x0, y0)6=
0 (où Du représente le gradient de u). Quitte à choisir un repère (O,i,j) tel que Du(x0, y0) = |Du(x0, y0)|j, il existe
– un disque D((x0, y0), r0)
– une application φ: [x0−r0, y0+r0]7→R de classe C1 tels que
∀(x, y)∈D((x0, y0), r0)u(x, y) =u(x0, y0)⇔y=φ(x).
Cela signifie que la ligne de niveau passant par (x0, y0)est un graphe au voisinage de (x0, y0). De plus,
φ(x) = −∂xu
∂yu(x, φ(x)).
Question 4 Soit u une image C2 telle que Du(0) 6= 0. On note
curvu(0) = 1
|Du|D2u
Du⊥
|Du|,Du⊥
|Du|
où
Du
|Du|,Du⊥
|Du|
est un repère orthonormal direct.
Montrer que |curvu|=|κ| où κ est le rayon de courbure de la ligne de niveau passant par 0.
En déduire que
curv u= div Du
|Du|
.
Nous nous servirons de cette dernière écriture pour calculer la courbure dans le reste du projet.
3 Comportement asymptotique du filtre médian
Nous allons étudier dans cette partie le comportement du filtre médian lorsque le calcul de la médiane s’effectue non plus sur la boule unité mais sur des boules de taille infinitésimale.
Définition 4 Soit h >0. On pose :
medhu(x) = sup
B∈hB
y∈Binf u(x+y)
le filtre médian sur les boules de rayon h.
Pour toutes les applications numériques, je vous enverrai par mail (lorsque vous m’aurez contacté) l’image sur laquelle vous aurez à appliquer vos différents programmes.
Si vous utilisez Matlab, la fonctionimreadvous permet de charger une image dans Matlab sous forme d’une matrice (où chaque élément de la matrice est la valeur en niveau de gris -dans le cas d’une image en niveau de gris- de l’image associée).
Si vous utilisez Scilab, il faut télécharger unetoolbox, donc envoyez-moi un mail et je vous expliquerai où la télécharger et comment s’en servir.
On considerera que l’image de taille N ×N pixels est la discrétisation d’une image continue sur Ω = [0,1]2.
Question 5 Ecrire un programme en Matlab (ou Scilab) qui prenne en entrée une image u et h et qui donne en sortie medhu.
Appliquer votre programme à l’image fournie pour des boules de taille h ∈ {1/200; 1/100; 1/50}.
Proposition 3 Soit u une image C3 et x∈ Ω t.q. Du(x)6= 0. u admet en x le développement asymptotique suivant :
medhu(x) = u(x) + h2
6 |Du|curvu+O(h3)
Remarque :la démonstration de ce développement est relativement longue donc dans un souci se simplification nous l’admettrons puisque ce n’est pas le résultat principal de ce sujet.
Rappelons maintenant ce théorème classique d’analyse fonctionnelle qui nous servira sous peu.
Théoreme 4 (d’Ascoli-Arzela) Soit(un)une suite de fonctions de Ωcompact deR2 dansR. On suppose que les unsont uniformément bornées et équicontinues, i.e.
∀ε >0,∃α, ∀n, ∀x, y ∈R2 kx−y k< α⇒ |un(x)−un(y)|< ε . Alors, il existe une sous-suite de (un) qui converge uniformément.
Définition 5 Soit u0 une image continue sur Ω, on définit l’application uh : R2×R7→R de la manière suivante : pour tout t ≥0,
uh(x, t) = ((medh)nu0)(x) si nh2
6 ≤t < (n+ 1)h2 6
Question 6 Ecrire un programme qui prenne en entrée une image u (de taille N ×N), le pas h et le temps t et qui donne en sortie uh(., t).
Vous appliquerez ce programme à l’image fournie pour des pas d’espace h ∈ 1
50(?),1001 ,2001 et t = 10001 .
Que semble-t-il se passer en fonction du pas d’espace h?( ? ?)
Question 7 Montrer que la suite uh converge uniformément lorsque h→0.
Remarque : on ne peut appliquer directement le théorème d’Ascoli-Arzela à uh car celle-ci n’est pas continue. On interpolera donc uh de manière à pouvoir appliquer le théorème.
D’autre part, on admettra si besoin le résultat suivant : si u(x) =kxket nh62 ≤t alors medhu(0)≤2√
3t.
Voici maintenant le résultat principal sur le filtre médian. On va montrer qu’appliquer le filtre médian sur une image u est équivalent à faire bouger les lignes de niveau en fonction de leur courbure.
Question 8 Montrer que la limite u de la suite (uh) est l’unique solution (de viscosité) de l’équation :
( ∂u
∂t =|Du|curvu, u(x,0) =u0(x)
Indications : On montrera uniquement que u est sous-solution de viscosité de cette équation. Autrement dit que pour tout φ tel que u −φ est maximal en (x, t)∈Ω×R+ alors, en (x, t)
soit Dφ 6= 0 et ∂u∂t − |Du|curvu≤0 soit Dφ = 0 et ∂u∂t ≤0
On peut définir de la même manière la notion de sur-solution, et le fait d’être à la fois sur- etsous-solution équivaut au fait d’être solution.
Remarque :cette démonstration nécessite de différencier plusieurs cas en fonc- tion de la nullité ou non des gradients de u ouφ au point concerné. De manière générale, pour cette question ainsi que pour les précédentes, si vous ne parvenez pas à démontrer tous les points délicats les démonstrations partielles (mais pas trop) seront valorisées.
4 Schémas numériques
Question 9 Ecrire le schéma de différences finies associé à l’équation d’évolution du mouvement par courbure. On prendra un schéma explicite en temps et centré en espace. Pour les conditions aux bords, on considérera que l’image est symétrique par rapport à chacun de ses côtés.
Question 10 Ecrire un programme qui prenne en entrée une image u, un temps t et un pas de temps ∆t et qui donne en sortie u∆t(., t), approximation de la solution de l’équation d’évolution d’après le schéma de la question 9.
Appliquer votre programme en prenant comme pas de temps ∆t ∈ {} et t =.
Comparer avec le résultat de la question??. Qu’observe-t-on ? A quoi pensez-vous que cela puisse être dû ?
Question 11 stabilité ? condition de convergence ?