Quelques méthodes de filtrage en Traitement d’Image

Page 1 sur 53Lecteur de document UniversityLib

Quelques méthodes de filtrage en Traitement d’Image

Image Processing · notes

Quelques méthodes de filtrage en Traitement d’Image

Maïtine Bergounioux

To cite this version:

Maïtine Bergounioux. Quelques méthodes de filtrage en Traitement d’Image. Cours donné dans le

cadre d’une école CIMPA - en attente de publication dans les actes. 2010. <hal-00512280v1>

HAL Id: hal-00512280

https://hal.archives-ouvertes.fr/hal-00512280v1

Submitted on 29 Aug 2010 (v1), last revised 24 Feb 2011 (v2)

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of sci-

entific research documents, whether they are pub-

lished or not. The documents may come from

teaching and research institutions in France or

abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est

destinée au dépôt et à la diffusion de documents

scientifiques de niveau recherche, publiés ou non,

émanant des établissements d’enseignement et de

recherche français ou étrangers, des laboratoires

publics ou privés.

QUELQUES MÉTHODES DE FILTRAGE EN TRAITEMENT

D’IMAGE

par

Ma¨ıtine Bergounioux

Résumé. — Nous présentons quelques méthodes ✦ de base ✧ en filtrage des images

numériques. Un bref aperçu du filtrage unidimensionnel est donné puis les techniques

linéaires et non linéaires sont abordées. Nous terminons par une ouverture sur les

méthodes variationnelles très utilisées actuellement pour la déconvolution et la res-

tauration des images.

Abstract (Some filtering methods in image processing). — We present basic

image processing denoising methods. We first recall breifly the main features of linear

1D filtering technqiues. Then we present linear and non linear standard methods. We

end with variational methods that are more and more used for deconvolution and

image restoration.

Table des matières

1

1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2. Filtrage unidimensionnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3. Débruitage par filtrage linéaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

4. Débruitage par filtrage non linéaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5. Filtrage variationnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Appendice A. Quelques outils mathématiques. . . . . . . . . . . . . . . . . . . . . . 41

Références. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

1. Introduction

L’étude d’un signal nécessite de supprimer au maximum le bruit parasite dû aux

conditions d’acquisition. L’un des buts du filtrage est de ✦ nettoyer ✧ le signal en

éliminant le plus de bruit possible tout en préservant le maximum d’informations. En

Classification mathématique par sujets (2000). — 68U10, 49J40.

Mots clefs. — Traitement d’image, filtrage, débruitage, segmentation.

2

BERGOUNIOUX

outre, l’information contenue dans un signal n’est pas forcément entièrement perti-

nente : il faut ✦ sélectionner ✧ l’information utile suivant l’usage que l’on veut en faire.

Par exemple, à l’écoute d’un morceau de musique, on peut vouloir un renforcement

des sons graves. Une autre finalité du filtrage est donc de sélectionner et renforcer

certaines bandes de fréquences porteuses de l’information intéressante.

Le filtrage des images a la même finalité que celui des signaux 1D. Il s’agit es-

sentiellement d’enlever le bruit (parasite) ou de sélectionner certaines fréquences. Si

la notion de haute fréquence ou basse fréquence est naturelle en signal 1D (son aigu

ou grave), la fréquence spatiale est un concept plus délicat qui découle du fait

que les images appartiennent au domaine spatial. La fréquence est une grandeur qui

caractérise le nombre de phénomènes qui se déroulent au cours d’un temps donné. Si

en voiture, le long d’une route, on voit 2 bandes blanches PAR seconde : c’est une

fréquence temporelle. Il est ensuite facile de comprendre que ce concept de fréquence

✦ temporelle ✧ peut aussi se traduire en disant qu’il y a 200 bandes blanches PAR

kilomètre : c’est une fréquence spatiale.

Dans une image, les détails se répètent fréquemment sur un petit nombre de pixels,

on dit qu’ils ont une fréquence élevée : c’est le cas pour les bords et les contours dans

une image. Au contraire, les fréquences basses correspondent à des variations qui se

répètent peu car, diluées sur de grandes parties de l’image, par exemple des variations

de fond de ciel.

Nous verrons dans la suite que la plupart des filtres agissent sélectivement sur ces

fréquences pour les sélectionner, en vue de les amplifier ou de les réduire tout comme

dans le cas 1D.

Les images peuvent être entâchées de bruits de nature différente. On s’intéressera

ici aux bruits

– additif, gaussien

– de flou (convolution)

– poivre et sel

Les bruits multiplicatifs et/ou poissoniens sont difficiles à appréhender : nous n’en

parlerons pas ici. De la même façon, nous n’aborderons pas le filtrage par ondelettes

qui nécessite des pré-requis importants.

FILTRAGE

3

(a) Image originale

(b) Bruit gaussien, moyenne

nulle, écart-type σ ✏ 0.02

(c) Bruit gaussien, moyenne

nulle, écart-type σ ✏ 0.1

(d) Flou

(e) Bruit poivre et sel

(f) Bruit multiplicatif

Figure 1. Exemples de perturbations d’une image (bruits et flou)

2. Filtrage unidimensionnel

Avant de présenter les principales techniques de base pour le filtrage des images,

nous rappelons brièvement le principe du filtrage unidimensionnel (pour plus de détails

on peut se référer à [5]).

Pour définir un filtre linéaire mathématiquement, on se donne deux espaces vec-

toriels X (entrée) et Y (sortie) munis d’une topologie séquentielle et un opérateur A

linéaire qui, à un signal e P X dit signal d’entrée, associe un signal s P Y appelé signal

de sortie :

A : e (cid:222)(cid:209) s :✏ A♣eq .

Définition 2.1 (Filtre). — Un filtre linéaire est un système linéaire continu qui

vérifie les deux propriétés suivantes :

1. Il est invariant dans le temps : si Ta : x (cid:222)(cid:209) x♣☎ ✁ aq est l’opérateur de translation

alors

TaA ✏ ATa.

2. Si

lim

k(cid:209)(cid:0)✽

ek♣tq ✏ e♣tq alors on a lim

k(cid:209)(cid:0)✽

sk♣tq ✏ s♣tq. Cette propriété est équivalente

à la causalité.

4

BERGOUNIOUX

Les espaces peuvent être de dimension infinie (signaux analogiques) ou finie (si-

gnaux discrets ou numériques).

Examinons l’effet d’un filtre linéaire A sur un signal périodique de X ✏ L2

T → 0) de fréquence λ ✏ 1④T . On sait que ce signal peut s’écrire sous la forme

p♣0, T q (où

(1)

où on a posé

x ✏

cn enλ ,

nPZ

➳

eλ : t (cid:222)(cid:209) exp♣2iπλtq ,

(2)

de sorte que enλ ✏ ♣eλqn . On sait (grâce aux séries de Fourier) que la famille ♣enλqnPZ

forme une base hilbertienne de X .

Formellement ♣1q

On est donc ramené à examiner l’effet de A sur enλ.

Ax ✏ A

✄

cn enλ

☛

nPZ

➳

nPZ

➳

✏

cn ♣Aenλq.

Proposition 2.2. — Un filtre linéaire associe à tout signal exponentiel d’entrée le

même signal multiplié par un facteur indépendant du temps, généralement complexe,

appelé fonction de transfert ou gain complexe du filtre.

Démonstration. — Cherchons l’image fλ ✏ A eλ de eλ par le filtre. On remarque que

pour t fixé, on a eλ♣t (cid:0) uq ✏ eλ♣tqeλ♣uq. Donc

❅u P R fλ♣t (cid:0) uq ✏ A♣eλ♣tqeλq♣uq,

c’est-à-dire par linéarité de A

fλ♣t (cid:0) uq ✏ eλ♣tq rAeλ♣uqs ✏ eλ♣tqfλ♣uq.

Pour u ✏ 0 , on obtient fλ♣tq ✏ eλ♣tqfλ♣0q; donc Aeλ ✏ fλ♣0qeλ. Par conséquent, eλ

est une fonction propre de A associée à la valeur propre fλ♣0q qui ne dépend que de

λ. La fonction λ (cid:222)(cid:209) H♣λq :✏ fλ♣0q est appelée fonction de transfert du filtre.

Reprenons le signal périodique x défini par la relation (1) ; la sortie filtrée par A

est donc

y :✏ Ax ✏

cnH♣nλqenλ .

En résumé, chaque coefficient de Fourier cn de x est transformé en γn :✏ H♣nλqcn.

Compte tenu des propriétés de la transformée de Fourier F, si x est un signal

numérique échantillonné avec 2N échantillons, on peut traduire la relation précédente

par

nPZ

➳

❅n P t1, ☎ ☎ ☎ , N ✉

Yn ✏ H♣nλq Xn ,

1. On peut completement justifier le calcul grâce a la linéarité et la continuité de l’opérateur A

de X dans X

FILTRAGE

5

ou Y ✏ F♣yq et X ✏ F♣xq, c’est-a-dire F♣yq ✏ H. ✂ F♣xq , où .✂ désigne le produit

composante par composante. Si on pose h ✏ 1

2N F ✁1♣Hq, cela donne : y ✏ h ✝ x (où *

désigne ici la convolution discrète.) Nous obtenons donc le résultat suivant (que nous

admettrons pour les signaux analogiques) :

Théoreme 2.3. — Un systeme linéaire continu est un filtre linéaire si et seulement

si la relation entre l’entrée e et la sortie s est une convolution :

s♣tq ✏ rh ✝ es♣tq ✏

h♣θq e♣t ✁ θq dθ ,

(cid:0)✽

✁✽

➺

où h♣tq est la réponse impulsionnelle du filtre.

Pour les filtres à temps discret on a

sn ✏

hk en✁k .

kPZ

➳

En d’autres termes les filtres linéaires continus unidimensionnels sont

et ne sont que des filtres de convolution (où la convolution est continue ou

discrète).

– Dans le cas des signaux analogiques (d’énergie finie, i.e. dans L2♣Rq par

exemple), le signal de sortie s est donné par : s ✏ h ✝ e, où e est le signal

d’entrée. Si on applique la transformation de Fourier, on obtient ˆs ✏ ˆhê. La

transformée de Fourier H :✏ ˆh de h est la fonction de transfert du filtre. Le

noyau de convolution h s’appelle la réponse impulsionnelle du filtre. En effet,

si le signal d’entrée e est la mesure de Dirac δ on obtient s ✏ h ✝ δ ✏ h. C’est

donc bien la sortie correspondant à une ✦ impulsion ✧.

– Dans le cas des signaux discrets, on peut faire la même analyse. La transfor-

mation de Fourier est remplacée par la transformation de Fourier discrète et se

calcule par FFT.

Généralement, on distingue les filtres suivant l’action qu’ils ont sur le spectre (c’est-

à-dire par la forme de leur fonction de transfert) :

– un filtre passe-bas va éliminer ou atténuer fortement l’énergie des hautes

fréquences d’un spectre en ne laissant ✦ passer ✧ que les basses fréquences ;

– un filtre passe-haut va éliminer ou atténuer fortement l’énergie des basses

fréquences d’un spectre ;

– un filtre passe-bande ne conservera que l’énergie concentrée dans une bande

de fréquences.

– un filtre coupe-bande ou filtre de réjection qui est le complémentaire du

précédent.

6

BERGOUNIOUX

Figure 2. Différents types de filtrage

3. Débruitage par filtrage linéaire

3.1. Filtrage spatial (bruit additif ). — Nous avons vu que les filtres linéaires

d’un signal 1D sont et ne sont que des filtres de convolution. Le filtrage spatial est

aussi essentiellement une opération de convolution (2D).

Si f est l’image a filtrer (ou a rehausser) et g le filtre spatial (ou PSF - Point

Spread Function ou masque) on a :

f ♣x, yq ✝ g♣x, yq ✏ F ✁1

✩

✬✫

F♣f ♣x, yqq ☎ F♣g♣x, yqq✉

.

G♣u,vq

❧♦♦♦♦♦♠♦♦♦♦♦♥

✱

✴✳

✴✲

✬✪

G est la fonction de transfert du filtre. Une image numérique étant essentiellement

discrète (pixels et niveaux de gris) nous allons présenter les filtres dans le cas discret.

Dans tout ce qui suit x et y sont des entiers (coordonnées des pixels) et f est à valeurs

entières (dans t0, ☎ ☎ ☎ , 255✉q. Comme dans le cas unidimensionnel, on peut distinguer

trois types de filtrage :

– Le filtre passe-bas diminue le bruit mais atténue les détails de l’image (flou

plus prononcé)

– Le filtre passe-haut accentue les contours et les détails de l’mage mais am-

plifie le bruit

– Le filtre passe-bande élimine certaines fréquences indésirables présentes dans

l’image

On ne fait pas en général une convolution globale mais une transformation locale,

basée sur le voisinage d’un point ♣x, yq :

FILTRAGE

7

Figure 3. Convolution locale

Le noyau de convolution (masque, PSF ) du filtre κ est à support compact inclus

dans rx1, x2s ✂ ry1, y2s :

g♣x, yq ✏ ♣f ✝ κq♣x, yq ✏

f ♣x ✁ i, y ✁ jqκ♣i, jq.

x2

y2

i✏x1

➳

Généralement le filtre est de dimensions di impaires et est symétrique. Dans ce cas

j✏y1

➳

rx1, x2s ✏ r✁

d1

2

,

d1

2

s

et

ry1, y2s ✏ r✁

d2

2

,

d2

2

s,

(3)

♣f ✝ κq♣x, yq ✏

f ♣x (cid:0) i, y (cid:0) jqκ♣i, jq.

♣d1✁1q④2

♣d2✁1q④2

i✏✁♣d1✁1q④2

➳

j✏✁♣d2✁1q④2

➳

w1

w4

w7

(cid:210)

x ✁ 1

w2

w5

w8

(cid:210)

x

w3 — y ✁ 1

w6 — y

w9 — y (cid:0) 1

(cid:210)

x (cid:0) 1

Table 1. Filtre(i,j) - d1 ✏ d2 ✏ 3

Ici d1 ✏ d2 ✏ d ✏ 3. On ne filtre pas les bords pour éviter des distorsions ; donc

κ♣0, 0q ✏ w5.

Sur cet exemple on a précisément

g♣x, yq ✏ w1f ♣x ✁ 1, y ✁ 1q (cid:0) w2f ♣x, y ✁ 1q (cid:0) w3f ♣x (cid:0) 1, y ✁ 1q

(cid:0)w4f ♣x ✁ 1, yq (cid:0) w5f ♣x, yq (cid:0) w6f ♣x (cid:0) 1, yq

(cid:0)w7f ♣x ✁ 1, y (cid:0) 1q (cid:0) w8f ♣x, y (cid:0) 1q (cid:0) w9f ♣x (cid:0) 1, y (cid:0) 1q.

8

Publicité

BERGOUNIOUX

Afin de conserver la moyenne de l’image f , la somme des éléments du filtre est nor-

malisée à 1 :

wi ✏ 1.

i

➳

Un filtre 2D est dit séparable s’il est possible de décomposer le noyau de convolu-

tion h2D en deux filtres 1D appliqués successivement en horizontal puis en vertical

(ou inversement) :

h2D ✏ hV

1D ❜ hH

1D,

où le symbole ❜ désigne le produit tensoriel. On peut alors traiter séparément les

lignes et les colonnes de l’image.

Pour qu’un filtre 2D soit séparable il faut et il suffit que les coefficients de ses

lignes et de ses colonnes soient proportionnels.

Exemple 3.1 (Filtres séparables ). — Ils sont obtenus comme suit. En pratique

cela revient à faire un produit matriciel.

a b

c ❜

α

β

γ

✏

aα bα cα

aβ bβ cβ

cγ

bγ

aγ

✏

α

β

γ

✂ a b

c .

Exemple 3.2 (Filtre de moyenne passe -bas ). —

1

9

☎

1

1

1

1

1

1

1

1

1

1

25

☎

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Table 2. Filtres de moyenne 3 x 3 et 5 x 5 respectivement

FILTRAGE

9

(a) Image originale

(b) Image bruitée (bruit gaussien σ ✏ 0.05)

(c) Filtre de moyenne 3 x 3

(d) Filtre de moyenne 5 x 5

Figure 4. Effet de lissage

Ce sont des filtres séparables.

10

BERGOUNIOUX

Exemple 3.3 (Filtre gaussien). —

Si par exemple σ ✏ 0.8 on a le filtre 3 ✂ 3 suivant

G♣✁1, ✁1q G♣0, ✁1q G♣1, ✁1q

G♣1, 0q

G♣0, 0q

G♣✁1, 0q

G♣1, 1q

G♣0, 1q

G♣✁1, 1q

✔

1

16

☎

1

2

1

2

4

2

1

2

1

et σ ✏ 1 pour un filtre 5 ✂ 5 donne environ

1

300

☎

1

4

6

4

1

4

4

6

18 30 18

30 48 30

18 30 18

4

6

4

1

4

6

4

1

.

Idéalement, on devrait prévoir un filtre de taille ♣6σ (cid:0) 1q ✂ ♣6σ (cid:0) 1q. En général un

filtre gaussien avec σ ➔ 1 est utilisé pour réduire le bruit, et si σ → 1 c’est dans le but

de fabriquer une image qu’on va utiliser pour faire un ✦ masque flou ✧ personnalisé.

Il faut noter que plus σ est grand, plus le flou appliqué à l’image sera marqué.

Exemple 3.4 (Filtre binômial). —

Les coefficients de ce filtre sont obtenus par le binôme de Newton. Un filtre 1D

1

16

r1 4 6 4 1s. Un filtre 2D

binômial d’ordre 4 est un filtre donné par le vecteur v ✏

binômial d’ordre 4 est le filtre séparable donné par v❏v :

1

256

☎

1

4

6

4

1

4

16

24

16

4

6

1

4

24 16 4

36 24 6

24 16 4

1

4

6

FILTRAGE

11

Ces filtres sont des filtres passe-bas : ils atténuent les détails de l’image (et donc le

bruit additif) mais en érodant les contours ajoutent du flou à l’image. Nous verrons

dans une section suivante comment atténuer le flou.

3.2. Filtrage fréquentiel (bruit additif ). —

3.2.1. Filtre passe-bas. — Nous avons déjà parlé du filtre passe-bas idéal dans le

fréquence

cas de signaux unidimensionnels. De manière analogue, on définit une

δc au dessus de laquelle les fréquences sont annulées (filtre idéal). La

de coupure

fonction de transfert est alors

H♣λ, µq ✏

✧

λ2 (cid:0) µ2 ↕ δc

1 si

0 sinon

❛

Figure 5. Fonction de transfert ✦ idéale ✧

Le créneau centré H admet une transformée de Fourier inverse qui est le sinus

cardnal qui présente d’autant plus d’ondulations que la fréquence de coupure est

petite. Cela entraˆıne un flou qui sera d’autant plus réduit que δc est grand.

(a) Image originale

(b) Image filtrée

Figure 6. Application d’un créneau ✦ idéal ✧ (δc ✔ 15% de la taille de

l’image) : on voit clairement les ondulations.

12

BERGOUNIOUX

On a vu que le filtre passe-bas idéal n’est pas réalisable et on fait donc une approxi-

mation de la fonction H précédente qui aura pour effet, non pas de couper les hautes

fréquences mais de les atténuer fortement. Le filtre suivant est le filtre passe-bas de

Butterworth La fonction de transfert est alors

1

H♣λ, µq ✏

1 (cid:0)

λ2(cid:0)µ2

δc

2n

où δc est encore la fréquence de coupure.

✂ ❵

✡

Figure 7. Fonction de transfert de Butterworth

En traitement d’image, un filtre passe-bas atténue les hautes fréquences : le résultat

obtenu après un tel filtrage est un adoucissement des détails et une réduction du bruit

granuleux.

3.2.2. Filtres passe-haut. — Le filtre passe-haut idéal est obtenu de manière

symétrique au passe- bas par

Le filtre passe-haut de Butterworth est donné par

H♣λ, µq ✏

1

2n

δc

λ2(cid:0)µ2

✡

1 (cid:0)

✂

❵

FILTRAGE

13

Un filtre passe haut favorise les hautes fréquences spatiales, comme les détails, et

de ce fait, il améliore le contraste. Toutefois, il produit des effets secondaires :

– augmentation du bruit : dans les images avec un rapport Signal/ Bruit

faible, le filtre augmente le bruit granuleux dans l’image.

– effet de bord : il est possible que sur les bords de l’image apparaisse un

cadre. Mais cet effet est souvent négligeable et peut s’éliminer en tronquant les

bords de l’image où en faisant une réflexion de quelques pixels de l’image autour

de son cadre.

(a) Filtrage passe-bas

(b) Filtrage passe-haut

Figure 8. Filtrage passe-bas et passe-haut avec un filtre de Butterworth

(n ✏ 4 et δc ✔ 0.15✝ taille de l’image)

3.2.3. Filtres passe-bande. — Ils permettent de ne garder que les fréquences com-

prises dans un certain intervalle :

H♣λ, µq ✏

1 si δc ✁

★

0 sinon

ε

2

↕

λ2 (cid:0) µ2 ↕ δc (cid:0)

ε

2

❛

ε est la largeur de bande et δc la fréquence de coupure.

Figure 9. Fonction de transfert d’un filtre passe-bande ✦ idéal ✧

14

BERGOUNIOUX

3.3. Application au filtrage différentiel. — Dans les modèles différentiels, on

considère l’image comme une fonction continue f : I ✂ I (cid:209) r0, 255s dont on étudie

le comportement local à l’aide de ses dérivées. Une telle étude n’a de sens que si la

fonction f est assez régulière. Ce n’est pas toujours le cas ! ! une image noir et blanc

sera discontinue (en fait continue par morceaux) les zones de discontinuité étant par

essence les contours.

Au premier ordre on peut calculer en chaque point M ♣x, yq, le gradient de l’image :

∇f ♣x, yq ✏ ♣

❇f

❇x

,

❇f

❇y

q.

Grâce au plongement dans l’espace continu, un grand nombre d’opérations d’ana-

lyse peuvent s’exprimer en termes d’équations aux dérivées partielles. Ceci permet de

donner un fondement mathématique satisfaisant aux traitements et aussi de fournir

des méthodes pour les calculer, par des schémas numériques de résolution.

Les filtres différentiels permettent de mettre en évidence certaines variations spa-

tiales de l’image. Ils sont utilisés comme traitements de base dans de nombreuses

opérations comme le rehaussement de contraste ou la détection de contours.

En pratique, il faut approcher les gradients pour travailler avec des gradients

discrets. Les approximations les plus simples des dérivées directionnelles se font

par différences finies. On peut les calculer par exemple à l’aide convolution avec des

noyaux très simples : par exemple, l’approximation de

se fait par convolution avec

r0 ✁ 1 1s. En effet, dans ce cas, la formule générale de convolution discrète (3) donne

(avec d1 ✏ 3 et d2 ✏ 0) :

❇f

❇x

1

g♣x, yq ✏

f ♣x (cid:0) i, y (cid:0) jqκ♣i, jq ✏ ✁f ♣x, yq (cid:0) f ♣x (cid:0) 1, yq ✔

i✏✁1

➳

j✏0

➳

De même l’approximation de

❇f

❇y

se fait par convolution avec

0

✁1

1

✔

g♣x, yq ✏ ✁f ♣x, yq (cid:0) f ♣x, y (cid:0) 1q ✔

✕

♣x, yq.

❇f

❇y

:

✜

✢

Publicité

❇f

❇x

♣x, yq.

0

(cid:210)

x ✁ 1

✁1

(cid:210)

x

1 — y

(cid:210)

x (cid:0) 1

0 — y ✁ 1

✁1 — y

1 — y (cid:0) 1

(cid:210)

x

Table 3. Masques (κ♣i, jq) des gradients par rapport à x (gauche) et y (droite)

FILTRAGE

15

On utilise plus souvent r✁1 0 1s et

✁1

0

1

✔

✜

qui produisent des frontières plus

✕

épaisses mais qui sont bien centrées. Ces opérations sont très sensibles au bruit et on

les combine généralement avec un filtre lisseur dans la direction orthogonale à celle de

dérivation, par exemple par le noyau suivant (ou sa transposée) : r1 2 1s. On obtient

alors des filtres séparables. Le calcul des dérivées directionnelles en x et y revient

finalement à la convolution avec les noyaux suivants :

✢

❇f

❇x

♣x, yq ✔ ♣f ✝ hxq♣x, yq et

❇f

❇y

♣x, yq ✔ ♣f ✝ hyq♣x, yq

avec hx ✏ r✁1 0 1s ❜ r1 2 1st ✏

✁1 0 1

✁2 0 2

✁1 0 1

☎

hy ✏ r1 2 1s ❜ r✁1 2 1st ✏

✁1 ✁2 ✁1

0

0

0

1

2

1

Ce sont les masques de Sobel.

☎

✆

✆

.

☞

✌

et

☞

✌

(a) Original

(b) Noyau r✁1 0 1s

(c) Noyau r✁1 0 1st

Figure 10. Gradients avec des noyaux sans filtrage

(a) Gradient horizontal

Figure 11. Gradients de Sobel

(b) Gradient vertical

(c) Norme du gradient

16

BERGOUNIOUX

Figure 12. Gradients de Robinson dans 3 directions différentes (voir ta-

bleau 4. suivant)

(a) Original

(b) Norme du gradient

(c) Gradient en x

(d) Gradient en y

Figure 13. Détection de contours par une convolution de type Sobel

FILTRAGE

17

Types de masque

Amplitude

Direction

Masques de Roberts

-1

0

0

1

0

1

-1

0

G1, G2

1

2

1

1

1

1

Masques de Sobel

0

0

0

1

-1

0

-2

-1

-1

Gx, Gy

2

0

-2

1

0

-1

Masques de Prewitt

0

0

0

1

-1

0

-1

-1

-1

Gx, Gy

1

0

-1

1

0

-1

Masques de Kirsh

5

-3

-3

5

0

-3

5

-3

-3

+ les 7 autres masques obtenus par

permutation circulaire des coefficients

Gi pour i de 1 à 8

Masques de Robinson

1

1

-1

1

-2

-1

1

1

-1

+ les 7 autres masques obtenus par

permutation circulaire des coefficients

Gi pour i de 1 à 8

A ✏

G2

1 (cid:0) G2

2

θ ✏

❛

+ arctan

π

4

✂

G2

G1

✡

A ✏

G2

x (cid:0) G2

y

θ = arctan

❜

Gy

Gx ✡

✂

A ✏

G2

x (cid:0) G2

y

θ = arctan

❜

Gy

Gx ✡

✂

Direction

maximum des ⑤Gi⑤

correspondant

au Gi sélectionné

maximum des ⑤Gi⑤

Idem

Table 4. Différents types de masques - gradients

18

BERGOUNIOUX

De la même façon, l’approximation par différences finies la plus simple de la

dérivée seconde est la convolution par le noyau r1 ✁ 2 1s pour l’approximation de

❇2f

❇x2 et

donc être approché par l’un opérateurs linéaires suivants :

❇2f

❇y2 . Le laplacien ∆f ✏ ❇

pour l’approximation de

❇x2 (cid:0) ❇

❇y2 peut

1

✁2

1

✕

✔

✢

✜

f

f

2

2

Laplacien discret - 4

Laplacien discret - 8 Laplacien de Robinson

0

1

0

1

-4

1

0

1

0

1

1

1

1

-8

1

1

1

1

1

-2

1

-2

4

-2

1

-2

1

(a) Laplacien 4-connexe

(b) Laplacien 8-connexe

(c) Laplacien de Robinson

Figure 14. Calcul du laplacien

Les filtres présentés dans cette section sont essentiellement des filtres passe-haut.

Ils permettent d’isoler les détails d’une image (les contours et les textures sur une

image non bruitée et le bruit en plus sur une image bruitée).

3.4. Filtrage par équations aux dérivées partielles. —

3.4.1. Équation de la chaleur. — Considérons un filtrage gaussien dans le cadre

continu. On sait que si l’image de départ est une fonction uo définie sur R2 (mais

L✽ à support compact), l’image filtrée est la convolée de uo avec un noyau gaussien

Gσ♣xq ✏ Gσ♣x1, x2q ✏

1

2πσ2 exp

✁

1 (cid:0) x2

x2

2

2σ2

✂

✡

✏

1

2πσ2 exp

✁

⑥x⑥2

2σ2

.

✡

✂

FILTRAGE

19

On pose u♣t, xq ✏ ♣h♣t, ☎q ✝ uoq♣xq où h♣t, xq ✏ G❵2t♣xq ✏

. Comme

h♣t, ☎q P C✽♣R2q a ses dérivées bornées et uo P L1♣R2q, la convolée u♣t, ☎q est aussi C✽

et on peut calculer ∆u :

exp

✁

✡

✂

1

4πt

⑥x⑥2

4t

❅t → 0, ❅x P R2

∆u♣t, xq ✏

❇2u

❇x2

1

♣t, xq (cid:0)

❇2u

❇x2

2

♣t, xq ✏ ♣∆h♣t, ☎q ✝ uoq♣xq.

Un rapide calcul montre que

∆h♣t, xq ✏

Publicité

✁

✂

1

4πt2 (cid:0)

⑥x⑥2

16πt3

exp

✁

✡

✂

⑥x⑥2

4t

✏

✁

✡

✂

1

t

(cid:0)

⑥x⑥2

4t2

✡

h♣t, xq,

et on obtient

∆u♣t, xq ✏

✁

1

t

(cid:0)

⑥x⑥2

4t2

✡

✂

u♣t, xq.

D’autre part, pour t → 0 on peut dériver directement u par rapport à t :

❇u

❇t

♣t, xq ✏

❇h

❇t

➺ ➺R

♣t, yquo♣x ✁ yqdy

et on obtient finalement

D’autre part, avec

on obtient

❇u

❇t

♣t, xq ✁ ∆u♣t, xq ✏ 0 sur s0, tr✂R2.

u♣t, xq ✏

1

4πt

exp

✁

✂

⑥y⑥2

4t

✡

➺ ➺R

uo♣x ✁ yqdy

lim

t(cid:209)0

u♣t, xq ✏➔ δx, uo →✏ uo♣xq,

car la famille de Gaussiennes converge au sens des distributions vers la mesure de

Dirac.

Figure 15. Gaussiennes

20

BERGOUNIOUX

La fonction ✦ filtrée ✧ u vérifie l’équation aux dérivées partielles suivante (équation

de la chaleur) :

(4)

✩

✫

♣t, xq ✁ ∆u♣t, xq ✏ 0 dans s0, T r✂Ω

❇u

❇t

u♣0, xq ✏ uo♣xq

❅x P Ω

✪

ou Ω est le ✦ cadre ✧ de l’image, i.e. l’ouvert de R2 ou la fonction u est définie. On

peut alors imposer soit des conditions aux limites au bord de Ω (niveau de gris fixé)

soit des conditions aux limites périodiques en périodisant la fonction u (si le cadre est

rectangle par exemple).

On peut alors utiliser un schéma aux différences finies pour calculer la solution de

l’EDP. Suivant le temps d’évolution, on obtient une version plus ou moins lissée de

l’image de départ.

(b) Image bruitée σ ✔ 0.1

(a) Original

(c) Image filtrée

Figure 16. Filtrage par EDP de la chaleur avec pas de temps dt ✏ 0.2 et

15 itérations

3.4.2. Mise en œuvre numérique. — La mise en œuvre numérique se fait avec une

discrétisation en différences finies, la plupart du temps explicite en raison de la très

grande taille des images (et donc des matrices associées). La condition de Neumann

est assurée grâce a une réflexion de l’image par rapport a ses bords. En traitement

d’image on considère souvent que la taille est donnée par le nombre de pixels de sorte

que le pas de discrétisation est h ✏ 1. On peut discrétiser le gradient de différentes

manieres (centrée, a droite, à gauche )

(5)

δxui,j ✏

ui(cid:0)1,j ✁ ui✁1,j

2

, δyui,j ✏

ui,j(cid:0)1 ✁ ui,j✁1

2

,

x ui,j ✏ ui(cid:0)1,j ✁ ui,j, δ(cid:0)

δ(cid:0)

y ui,j ✏ ui,j(cid:0)1 ✁ ui,j,

x ui,j ✏ ui,j ✁ ui✁1,j, δ✁

δ✁

y ui,j ✏ ui,j ✁ ui,j✁1.

FILTRAGE

21

La norme du gradient peut se calculer par un schéma ENO (Essentially Non Oscilla-

tory). Deux approximations possibles de ⑤∇u⑤ sont

∇(cid:0)ui,j ✏

ou

∇✁ui,j ✏

❜

❜

max♣δ✁

x ui,j, 0q2 (cid:0) min♣δ(cid:0)

x ui,j, 0q2 (cid:0) max♣δ✁

y ui,j, 0q2 (cid:0) min♣δ(cid:0)

y ui,j0q2,

max♣δ(cid:0)

x ui,j, 0q2 (cid:0) min♣δ✁

x ui,j, 0q2 (cid:0) max♣δ(cid:0)

y ui,j, 0q2 (cid:0) min♣δ✁

y ui,j0q2.

Si l’opérateur gradient est discrétisé par différences finies à droite, alors une discré-

tisation possible de la divergence est donnée par

i,j ✁ p1

p1

p1

i,j

i✁1,j

si

1 ➔ i ➔ N

(6)

♣div pqi,j ✏

✩

✬✬✬✫

✬✬✬✪

avec p ✏ ♣p1, p2q et ♣N, M q est la taille de l’image.

✩

✬✬✬✫

✬✬✬✪

i ✏ N

✁p1

i ✏ 1

i✁1,j

(cid:0)

si

si

i,j✁1

i,j ✁ p2

p2

p2

i,j

✁p2

i,j✁1

si

si

si

1 ➔ j ➔ M

j ✏ 1

j ✏ M

3.5. Déconvolution (cas d’un flou). — Une autre source de perturbation d’une

image est le ✦ flou ✧. Nous avons vu qu’un filtre de convolution passe-bas permettait

d’enlever le bruit additif mais que l’image filtrée était floutée. Cela s’explique par

le fait que l’opérateur de convolution est régularisant. Un tel opérateur est souvent

modélisé par un produit de convolution, de noyau positif symétrique h (qui est la

plupart du temps gaussien). Il n’est pas nécessairement inversible (et même lorsqu’il

est inversible, son inverse est souvent numériquement difficile à calculer).

3.5.1. Approche ✦ spatiale ✧ : équation de la chaleur rétrograde (inverse). — Nous

avons constaté précédemment que faire une convolution par un noyau gaussien revient

à résoudre une équation de la chaleur. Le pas de temps joue le rôle de l’écart type de

la gaussienne. Pour faire l’opération inverse, la déconvolution on peut donc imaginer

de résoudre une équation de la chaleur ✦ rétrograde ✧ en partant de l’état ✦ final ✧

qui est l’image floutée et en ajustant le pas de temps au rapport signal sur bruit.

♣t, xq (cid:0) ∆u♣t, xq ✏ 0 dans s0, T r✂Ω

❇u

❇t

u♣T, xq ✏ uo♣xq

❅x P Ω

(7)

✩

✫

✪

22

BERGOUNIOUX

(a) Image floutée

(b) Original

(c) Itération 5

Figure 17. Déconvolution par équation de la chaleur inverse : dt ✏ 1.5

Cette équation est notoirement mal posée (on ne peut assurer ni l’existence d’une

solution, ni la stabilité d’un schéma numérique) et il convient de ne faire qu’un petit

nombre d’itérations.

(a) Itération 6

(b) Itération 8

Figure 18. Déconvolution par équation de la chaleur inverse : dt ✏ 1

3.5.2. Filtre inverse et Algorithme de Van Cittert. — L’algorithme de Van Cit-

tert repose sur la formulation fréquentielle d’une convolution. Supposons que h soit

l’opérateur de flou (inconnu ou donné par étalonnage des appareils de mesure). On

ne prend pas en compte le bruit. L’image floutée f vérifie f ✏ h ✝ u, où u est l’image

originale (qu’on veut retrouver). Une formulation équivalente est ˆf ✏ ˆhû c’est-à-dire

û ✏

ˆf

ˆh

.

FILTRAGE

23

Le filtre inverse est le plus simple des filtres. Dans certaines conditions, il peut donner

de tres bons résultats. Il consiste donc a calculer 1④ˆh et a l’appliquer a l’image floutée.

C’est le meilleur filtre pour déconvoluer une image non bruitée. L’image restaurée

est presque identique à l’image d’origine. Toutefois il n’est pas toujours possible de

calculer 1④ˆh. Une alternative est l’algorithme de Van Cittert.

Posons ˆg ✏ 1 ✁ ˆh de sorte que formellement on obtient

Si on pose uo ✏ f et ûn ✏

û ✏

ˆf

1 ✁ ˆg

✏

n

(cid:0)✽

✄

k✏1

➳

ˆgk

ˆf .

☛

♣ˆgqk

ˆf pour tout n ➙ 1 on obtient

☛

k✏0

➳

✄

ûn(cid:0)1 ✏ ˆf (cid:0) ˆg ûn ✏ ˆf (cid:0) ♣1 ✁ ˆhqûn,

ou de manière équivalente

un(cid:0)1 ✏ f (cid:0) un ✁ h ✝ un.

(a) Itération 4

(b) Itération 8

Figure 19. Déconvolution par algorithme de Van Cittert : h est un

masque gaussien de taille 9 et d’écart-type σ ✏ 1 (connu)

La principale difficulté dans l’utilisation de cet algorithme est le choix a priori du

filtre h.

Le filtre inverse est une technique très utile pour la déconvolution mais il ne prend

pas en compte le bruit. f est une image floutée et bruitée : f ✏ h ✝ u (cid:0) b, où u

est l’image originale a restaurer et b un bruit blanc gaussien, le passage a un filtre

24

BERGOUNIOUX

ˆf

ˆh

ˆb

ˆh

inverse donne û ✏

✁

. Le bruit blanc chargeant uniformément les fréquences on

a ˆb ✔ 1 et si h est un filtre passe- bas ˆh ✔ 0 au vosinage de l’infini (c’est-à-dire au

dessus d’une fréquence de coupure λc). Il s’ensuit que le filtrage est efficace dans une

bande de fréquences inférieures a λc mais que le bruit est amplifié au dela.

Pour traiter des images a la fois floutées et bruitées on préfere utiliser le filtre de

Wiener.

4. Débruitage par filtrage non linéaire

4.1. Filtres médians. — Ce ne sont pas des filtres linéaires (et donc pas des filtres

de convolution).

g♣x, yq ✏ médianetf ♣n, mq ⑤ ♣n, mq P S♣x, yq ✉,

où S♣x, yq est un voisinage de ♣x, yq.

30

10

20

20

10

250 25

30

25

(cid:209)

10 10 20 20

25 30 30

25

(cid:210)

médiane

bruit

(cid:211)

250

On remplace la valeur du pixel par la valeur médiane ou la valeur moyenne. Ce filtre

est utile pour contrer l’effet ✦ Poivre et Sel ✧ (P& S) c’est-à-dire des faux ✦ 0 ✧ et

✦ 255 ✧ dans l’image.

Figure 20. Image bruitée ✦ Poivre et Sel ✧

FILTRAGE

25

(a) Filtre de moyenne -taille 3

(b) Filtre médian - taille 3

(c) Filtre de moyenne -taille 5

(d) Filtre médian - taille 5

(e) Filtre de moyenne -taille 7

(f) Filtre médian - taille 7

Figure 21. Comparaison filtres de moyenne et filtres médians

Si le bruit P& S est supérieur à la moitié de la dimension du filtre, le filtrage est

inefficace.

26

BERGOUNIOUX

4.2. Modèle de Peronna-Malik. — Pour améliorer les résultats obtenus par

l’EDP de la chaleur, Peronna et Malik ont proposé de modifier l’équation en y

intégrant un processus de détection des bords :

...