Traitements d'Images

Image Processing, Mathematics · course

Browse all mathématiques documents

M2 IRIV

Outils fondamentaux en traitements d’images

2019–2020

Traitements et outils de base

Le traitement d’image (image processing) consiste à appliquer des transformations mathématiques sur

des images dans le but d’améliorer leur qualité ou d’en extraire une information. On peut citer par

exemple : la création d’effets spéciaux au cinéma, l’amélioration de la qualité des photos en corrigeant

les conditions de prise de vue, la détection de lettres ou de visages, l’identification de zones cancéreuses

en imagerie médicale, la compression JPEG, etc.

Ce document présente succinctement les outils élémentaires du traitement d’images. Il est indispensable

de l’étudier pour aborder le premier TP dans de bonnes conditions. Ce premier TP commencera par

une rapide évaluation (notée) de vos pré-requis, dont vous trouverez des questions page 13.

Dans ce document, les termes en anglais sont donnés en italique.

1 Définition d’une image numérique

1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Diversité des images

. . . . . . . . . . . . . . . . . . . . . . . . . .

1.3 Palette de couleurs . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Opérations arithmétiques

2.1 Addition d’images

. . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

2.2 Soustraction d’images

2.3 Division d’images . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Histogramme

3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.3 Transformations d’intensité . . . . . . . . . . . . . . . . . . . . . .

3.4 Seuillage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Convolution

4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3 Problèmes aux bords . . . . . . . . . . . . . . . . . . . . . . . . . .

4.4 Séparabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Transformée de Fourier

5.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.2 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.3 Filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Questions de l’évaluation

2

2

2

3

3

3

4

4

4

4

5

5

7

7

7

9

9

10

10

10

11

11

13

1/13

1 Définition d’une image numérique

1.1 Définition

Une image numérique est définie comme une fonction f (m,n, . . . ) à valeurs discrètes et finies (mais pas

forcément scalaires), et dont les coordonnées m, n, . . . sont également à valeurs discrètes et finies.

f :

Nd

m,n, . . .

(cid:55)→

RB

f (m,n, . . . )

Ainsi par exemple, une image à niveaux de gris correspond à d = 2 (l’image a deux dimensions) et

B = 1 (il n’y a qu’une valeur par pixel : le niveau de gris). Pour une image couleur classique, d = 2 et

B = 3 (il y trois bandes : rouge, vert, bleu). Enfin, une image IRM correspond à d = 3 (l’image est 3D)

et B = 1.

Dans le cas classique d’une image à deux dimensions f (m,n) de taille M

×

coordonnées représenté figure 1 : le pixel (0,0) est situé en haut à gauche.

N , on adopte le système de

Figure 1 – Système de coordonnées adopté dans le cours.

1.2 Diversité des images

Les images numériques peuvent se distinguer sur plusieurs aspects.

Nombre de dimensions Une image classique, telle une photographie, possède deux dimensions,

mais ce n’est pas le cas de toutes les images. Par exemple, une image IRM est une image à trois

dimensions (qu’on appelle alors « image 3D » ou « cube »), et une image à une dimension est en fait un

signal. Les éléments d’une image 2D sont appelés pixels (picture element) et ceux d’une image 3D sont

appelés voxels (volume element).

Hétérogénéité des dimensions Dans une image classique 2D, les deux dimensions de l’image sont

des dimensions spatiales. Mais là encore, les différentes dimensions de l’image ne s’expriment pas

forcément dans la même unité. Par exemple, une vidéo peut être considérée comme une image 2D+t

(deux dimensions spatiales, une dimension temporelle), une séquence IRM peut être considérée comme

une image 3D+t (trois dimensions spatiales, une dimension temporelle) et une image hyperspectrale est

une image 2D+λ (deux dimensions spatiales plus une dimension dépendant de la longueur d’onde).

Dimension de leurs éléments Chaque élément d’une image (pixel, voxel. . .) peut être scalaire ou

vectoriel. Par exemple, les pixels d’une image 2D à niveaux de gris (grayscale image) ne contiennent

qu’une seule valeur (l’intensité du gris). Les pixels d’une photographie classique contiennent trois valeurs

(correspondant aux proportions de rouge, de vert et de bleu). Les images issues des satellites Pléiades

sont des images RVB–IR, donc contiennent quatre valeurs (rouge, vert, bleu et infrarouge).

Espace des valeurs de leurs éléments

0,1, . . . ,255

{

}

on considère qu’une image est à valeurs dans

les images grand public sont généralement à valeurs dans

. De manière générale,

}

i1, . . . ,iL

où il

}

{

R et L

0,1

{

N∗.

, mais une « image binaire » (binary image) est à valeurs dans

2/13

f(m,n)01N−101M−11.3 Palette de couleurs

Pour afficher une image, il faut définir une palette de couleur (colormap) qui fait la correspondance

entre les intensités

des pixels et les niveaux de gris ou les couleurs. La figure 2 représente

l’image de Lena 1 avec différentes palettes. L’image de gauche correspond à l’image originale avec la

palette par défaut (256 niveaux de 0 à 255). Comme on le voit, le choix de la palette permet de modifier

la perception des couleurs.

i1, . . . ,iL

}

{

0

255

0

255

0

255

0

255

Figure 2 – L’image Lena représentée avec les palettes situées sous les images.

2 Opérations arithmétiques

Des opérations mathématiques simples peuvent être effectuées sur les éléments de deux images. Pour

simplifier, on considère dans cette partie des images 2D, la généralisation à des images de dimension

différente est évidente.

2.1 Addition d’images

L’addition de deux images f et g de même taille est une nouvelle image h de même taille dont chaque

pixel correspond à la somme des valeurs des pixels des images originales :

m,n, h(m,n) = f (m,n) + g(m,n).

La figure 3 donne un exemple d’utilisation de l’addition. L’addition peut également être utilisée pour

débruiter une série d’images, comme on le verra dans le cours « Restauration ».

0

255

0

255

Advertisement

0

510

Figure 3 – L’image de droite est la somme des deux images de gauche. Notez que cette somme a des

valeurs entre 0 et 510.

1. Pour en savoir plus sur Lena : fr.wikipedia.org/wiki/Lenna ou www.cs.cmu.edu/

chuck/lennapg/.

3/13

2.2 Soustraction d’images

La soustraction de deux images est utilisée par exemple pour détecter des changements (figure 4).

m,n, h(m,n) = f (m,n)

g(m,n)

ou

m,n, h(m,n) =

f (m,n)

|

g(m,n)

|

0

255

0

255

-255

255

Figure 4 – L’image de droite est la différence des deux images de gauche. Notez que l’image de

différence a des valeurs entre

255 et 255.

2.3 Division d’images

La division de deux images permet notamment de corriger une illumination non homogène [3, section

10.3.2]. La figure 5 illustre la suppression de l’ombre sur une image.

m,n, h(x,y) =

f (m,n)

g(m,n)

Figure 5 – L’image de droite est la division de l’image de gauche par l’image de droite.

3 Histogramme

3.1 Définition

L’histogramme (histogram) d’une image numérique représente la distribution des valeurs des pixels.

C’est la fonction discrète h telle que

h(i) = ni

où ni est le nombre de pixels de l’image ayant l’intensité i.

La figure 6 représente une image et son histogramme. On distingue sur celui-ci deux « modes » : celui de

gauche correspond aux tons sombres de l’image (principalement le fond) et celui de droite correspond

aux tons clairs (les pétales et le centre).

Représentez l’histogramme de la figure 7. Les chiffres correspondent aux intensités des pixels.

4/13

Figure 6 – Une image à 256 niveaux de gris et son histogramme.

Figure 7 – Une simple image : représentez son histogramme !

3.2 Propriétés

L’histogramme peut être interprété comme la densité de probabilité discrète des intensités si les

effectifs sont normalisés par le nombre de pixels M

N :

p(i) =

×

ni

M

N

×

L’histogramme donne une information globale sur les intensités de l’image, mais perd l’information

spatiale de l’image. Ainsi, deux images très différentes peuvent avoir le même histogramme (cf.

figure 8).

Figure 8 – Ces deux images ont le même histogramme (représenté figure 6). L’image de droite

correspond en fait aux pixels de l’image de gauche ordonnés selon leur niveau de gris.

Le nombre et la largeurs des barres (bins) est choisi par l’utilisateur.

3.3 Transformations d’intensité

On peut appliquer une transformation T sur les intensités des pixels d’une image pour en modifier les

valeurs [3, section 10.2.3] :

j = T (i)

où j et i représentent respectivement les intensités des pixels de la nouvelle image et de l’image originale.

L’application d’une telle transformation a alors une incidence sur l’histogramme (cf. figure 9).

5/13

0255010002000300040000111320003033221e

l

a

n

i

g

i

r

o

e

g

a

m

I

f

i

t

a

g

é

N

a

m

m

a

g

n

o

i

t

c

e

r

r

o

C

)

i

c

i

4

,

0

=

γ

(

t

n

e

m

e

l

a

t

É

e

m

m

a

r

g

o

t

s

i

h

d

n

o

i

t

a

s

i

l

Advertisement

a

g

É

e

m

m

a

r

g

o

t

s

i

h

d

Figure 9 – Exemples de transformations. De gauche à droite : image (originale ou transformée) et son

histogramme, transformation T .

6/13

025501000200030004000025501000200030004000010020005010015020025002550200040006000010020005010015020025002550100020003000400001002000501001502002500255010002000300040000100200050100150200250Quatre transformations classiques sont répertoriées ci-après (on suppose que les intensités sont à valeurs

dans [0,1]).

i ;

négatif : T (i) = 1

correction gamma : T (i) = iγ ;

étalement (normalization) :

T (i) =

i

imax

imin

imin

T (i) =

1

M N

i

(cid:88)

k=0

nk

où imin et imax sont respectivement les intensités minimale et maximale de l’image originale ;

égalisation (equalization) :

où M et N sont les dimensions de l’image et nk est le nombre de pixels d’intensité k. Cette

transformation cherche à étaler au mieux l’histogramme sur toute la dynamique des intensités, et

à rendre l’histogramme le plus plat possible : cela a pour conséquence d’augmenter le contraste

de l’image. C’est une méthode complètement automatique qui ne nécessite aucun paramètre à

régler. La démonstration de cette équation est disponible dans [1, section 3.3.1].

3.4 Seuillage

Dans certains cas, l’histogramme peut être un outil efficace pour segmenter une image en deux classes,

c’est-à-dire pour distinguer les objets de l’image suivant leur luminosité. En effet, lorsque l’histogramme

présente deux modes distincts, on peut définir un seuil (threshold ) S entre ces deux modes, et appliquer

ensuite un seuillage (thresholding) sur les pixels de l’image :

— si le pixel a une valeur inférieure au seuil, le pixel est dans la classe 0 ;

— si le pixel a une valeur supérieure au seuil, le pixel est dans la classe 1.

4000

0

0

115

255

Figure 10 – Seuillage avec un seuil égal à 115.

Le seuillage permet d’obtenir une image binaire qui ne contient que deux valeurs. Il existe des méthodes

pour calculer automatiquement le seuil (par exemple avec la méthode de Otsu comme on le verra dans

le cours « Segmentation »).

4 Convolution

4.1 Définition

Beaucoup de traitements s’obtiennent en modifiant les valeurs des pixels en fonction de leurs pixels

voisins. Lorsque cette modification est identique à toute une image g, elle peut être définie à l’aide

d’une seconde image h qui définit les relations de voisinage. Il en résulte donc une troisième image f .

Cette opération est appelée convolution (convolution) [2], [3, section 4] et se note

:

f (x,y) = (g

h)(x,y) =

g(x

m,y

n)h(m,n)

(cid:88)

(cid:88)

m

n

7/13

f2,2 = g3,3h

,

+ g3,2h

,0 + g3,1h

,+ + g2,3h0,

+ g2,2h0,0 + g2,1h0,+ + g1,3h+,

Figure 11 – Exemple de calcul du pixel (2,2) de f .

+ g1,2h+,0 + g1,1h+,+

Intuitivement, le résultat d’une convolution peut s’obtenir en faisant s’« étaler » chaque pixel (m,n)

de l’image g suivant h et proportionnellement à l’intensité de gm,n. La figure 11 donne un exemple de

calcul pour un pixel particulier de f . La figure 12 donne quelques exemples de résultats de convolution.

Pour des raisons de simplicité, l’image h est :

— de taille impaire (3

— centrée, c’est-à-dire que le pixel de coordonnées (0,0) est situé au milieu de l’image.

7, . . .) ;

3, 5

5, 7

×

×

×

Notons que h est une image qui porte plusieurs noms, suivant le contexte : filtre (filter ), masque (mask ),

noyau (kernel ), fenêtre (window ), motif (pattern) ou fonction d’étalement (point spread function : PSF ).

=

=

=

Figure 12 – Quelques exemples de produits de convolution.

8/13

f1,1f2,1f3,1f4,1f5,1f1,2f2,2f3,2f4,2f5,2f1,3f2,3f3,3f4,3f5,3f1,4f2,4f3,4f4,4f5,4f1,5f2,5f3,5f4,5f5,5g1,1g2,1g3,1g4,1g5,1g1,2g2,2g3,2g4,2g5,2g1,3g2,3g3,3g4,3g5,3g1,4g2,4g3,4g4,4g5,4g1,5g2,5g3,5g4,5g5,5+10−1−10+1h−,−h−,0h−,+h0,−h0,0h0,+h+,−h+,0h+,+∗=0−10−14−10−104.2 Propriétés

— L’élément neutre du produit de convolution est une image nulle avec un seul pixel égal à 1.

— Le produit de convolution est commutatif :

g

h = h

g.

— Le produit de convolution est distributif par rapport à l’addition :

g

(h1 + h2) = g

h1 + g

h2.

h = g

h) = (αg)

(h2 ∗

h3) = (h1 ∗

h2)

(αh)

h3.

C).

— Le produit de convolution est bilinéaire :

Advertisement

— Le produit de convolution est associatif :

α(g

h1 ∗

4.3 Problèmes aux bords

La formule du produit de convolution n’est pas définie sur les bords de l’image : ainsi, le calcul de f1,1

dans la figure 11 nécessite de connaître, par exemple, la valeur de g0,0 qui n’existe pas. Il existe donc

plusieurs manières de fixer les valeurs des pixels situés en dehors de l’image : la figure 13 représente

l’image Lena et les différentes possibilités de définir les pixels extérieurs, et la figure 14 présente les

résultats de convolution dans les différents cas.

Complétion avec des

zéros

Figure 13 – Plusieurs manières de fixer les pixels situés en dehors de l’image Lena.

Reproduire le bord

Périodisation

Miroir

Complétion avec des

zéros

Périodisation

Reproduire le bord

Miroir

Figure 14 – Résultats des convolutions dans les différents cas.

Cette dernière figure montre que, globalement, les résultats sont très proches : seuls les pixels aux bords

de l’image peuvent être différents. En tous les cas, il n’existe pas de manière parfaite pour fixer les

valeurs des pixels situés en dehors de l’image : toutes introduisent des erreurs. Aussi, le mieux est de

s’arranger pour que les objets d’intérêt soient loin du bord. Notons enfin que la périodisation de l’image

aboutit à une convolution circulaire ; c’est également le résultat obtenu par une multiplication dans le

domaine de Fourier (cf. section 5).

9/13

4.4 Séparabilité

Lorsqu’un filtre h peut s’écrire comme la convolution de deux filtres 1D (h1 et h2) suivant les deux

axes, il est dit séparable. Un exemple est représenté ci-dessous :

αa αb αc

βa βb βc

γa γb γc

(cid:123)(cid:122)

h

(cid:124)

=

(cid:125)

(cid:124)

0 α 0

0 β 0

0 γ 0

(cid:123)(cid:122)

h1

(cid:125)

(cid:124)

=

0 0 0

c

a b

0 0 0

(cid:123)(cid:122)

h2

(cid:125)

α

β

γ

(cid:124)(cid:123)(cid:122)(cid:125)

h1

(cid:2)a b

(cid:123)(cid:122)

(cid:124)

h2

c(cid:3)

(cid:125)

Ainsi, la convolution d’une image g par un filtre séparable h peut être calculée en effectuant tout

d’abord la convolution de g par h1, puis ensuite par h2 (ou l’inverse) :

La séparabilité permet ainsi de gagner en temps de calcul, car le calcul de deux convolutions 1D

demande moins d’opérations que le calcul d’une convolution 2D.

g

h = g

h2) = (g

h1)

h2 = (g

h2)

h1

(h1 ∗

5 Transformée de Fourier

La transformée de Fourier (Fourier transform) bidimensionnelle est la version étendue de la transformée

de Fourier classique aux images [3, section 2.3]. On rappelle que la transformée de Fourier permet de

décomposer un signal en une somme de sinusoïdes, permettant ainsi de mettre en évidence les fréquences

contenues dans un signal.

5.1 Définition

La transformée de Fourier discrète (TFD) d’une image f de taille M

M

N , à valeurs complexes :

N est une image F de taille

×

×

F (u,v) =

M

1

(cid:88)

N

1

(cid:88)

x=0

y=0

f (m,n)e−

j 2π( um

M + vn

N )

Comme la transformée de Fourier est (généralement) complexe, elle ne peut pas être représentée

directement : c’est pourquoi on représente séparément son module et sa phase, comme dans la figure 15.

Image

Module de la TFD

Phase de la TFD

Figure 15 – Transformée de Fourier discrète de Lena. Le module est représenté en échelle logarithmique

afin de distinguer les détails (on a donc appliqué une transformation d’histogramme !).

Le module et la phase représentent la distribution de l’énergie dans le plan des fréquences. Les fréquences

basses se situent au centre de l’image, les fréquences hautes sur le pourtour. Dans l’image « spatiale »,

l’épaule de Lena est une zone de basses fréquences car les intensités des pixels évoluent doucement d’un

pixel à l’autre. Au contraire, les plumes du chapeau sont une zone contenant des hautes fréquences.

La transformée de Fourier discrète inverse permet de calculer l’image originale à partir d’une transformée

de Fourier :

f (m,n) =

1

M N

F (u,v)e+j 2π( um

M + vn

N )

M

1

(cid:88)

N

1

(cid:88)

Advertisement

u=0

v=0

10/13

5.2 Propriétés

— Séparabilité : la TFD peut être calculée en calculant les TFD 1D des lignes, puis les TFD 1D

des colonnes résultantes (ou l’inverse).

— La TFD est périodique de périodes M et N :

F (u,v) = F (u + kmM,v) = F (u,v + knN ) = F (u + kmM,v + knN )

où km,kn

Z.

— La TFD est linéaire :

— Une translation sur l’image implique un déphasage de sa TFD :

af + bg

aF + bG

où a,b

C.

f (m

m0,n

n0)

F (u,v) exp

(cid:16)

j2π

(cid:16) um0

M

+

vn0

N

(cid:17)(cid:17)

— Une rotation appliquée sur l’image implique la même rotation sur sa TFD.

— Le produit de convolution de deux images est équivalent à la multiplication de leurs TFD (et

vice-versa) :

5.3 Filtrage

f

g

F

G

×

et

f

g

×

F

G

Le filtrage correspond à sélectionner certaines fréquences de l’image. On distingue notamment le filtrage

passe-bas (low-pass filtering) (figure 16) et le filtrage passe-haut (high-pass filtering) (figure 17).

Références

[1] R.C. Gonzalez and R.E. Woods. Digital Image Processing. Pearson, 2010.

[2] Machine Learning Guru.

Image filtering. machinelearninguru.com/computer_vision/basics/

convolution/image_convolution_1.html.

[3] B. Jähne. Digital Image Procesing. Springer, 2005. Accessible depuis le réseau de l’Université :

www.springer.com/gp/book/9783540240358.

11/13

s

e

g

a

m

I

s

e

l

u

d

o

M

×

=

=

Figure 16 – Exemple de filtrage passe-bas de Lena : seules les basses fréquences sont conservées. Les

images du haut correspondent aux images dans le domaine spatial, celles du bas correspondent aux

modules des TFD des images du haut.

s

e

g

a

m

I

s

e

l

u

d

o

M

×

=

=

Figure 17 – Exemple de filtrage passe-haut de Lena : seules les hautes fréquences sont conservées.

12/13

6 Questions de l’évaluation

Les questions de la première évaluation seront tirées de la liste ci-dessous. Cette liste vous permet donc

de connaître votre niveau pour aborder sereinement le module d’Outils fondamentaux en traitement

d’images. Les réponses ne sont pas forcément toutes dans ce document : à vous de vous renseigner avec

d’autres sources. Pour toute question, n’hésitez pas à me contacter : [email protected].

1. Savoir traduire en français et en anglais les termes utilisés dans ce document.

2. Les écrans utilisent uniquement trois couleurs de pixels (rouge, vert et bleu) pour générer toutes

les couleurs par synthèse additive. Comment obtient-on du noir ? du blanc ? du jaune ?

3. Les images classiques sont enregistrées sur trois canaux, chacun codé sur 8 bits. Combien de

couleurs sont possibles ? Quelle est la taille en bits d’une image de 1000

4. Comment peut-on représenter une image hyperspectrale sur un écran ?

1000 pixels ?

×

5. Pourquoi faut-il définir une table de correspondance entre les valeurs des pixels et leur couleur ?

6. Donnez un exemple d’application dans laquelle on souhaite faire une détection de changements

entre deux images. Quelle technique peut-on alors utiliser pour détecter les changements ?

7. Qu’obtient-on en divisant une image f par une image g ?

8. Seriez-vous capable d’associer une image et son histogramme parmi différentes possibilités ?

9. Représentez l’histogramme de la figure 7 (ou d’une figure équivalente).

10. Que représentent les deux axes d’un histogramme ?

11. Quelle type de transformation d’histogramme utiliser pour augmenter le contraste d’une image ?

Et pour inverser les couleurs d’une image ?

12. Quelle est la différence principale entre un étalement et une égalisation d’histogramme ?

13. Quel est l’effet du seuillage d’une image sur son histogramme ?

14. Comment choisir le seuil pour effectuer une segmentation binaire ?

15. Quelle est la signification physique de la convolution ?

16. Seriez-vous capable d’associer le résultat d’une convolution à deux images d’entrée parmi

différentes possibilités ?

17. Comment se traduit une convolution dans le domaine fréquentiel ?

18. Une image f est d’abord convoluée par une image g puis par par une image h. Obtient-on le

même résultat en effectuant les convolutions dans un ordre différent ?

19. Lorsqu’on a affaire à un problème dans lequel apparaît une convolution, il peut être intéressant

de se poser la question de la séparabilité du noyau : pourquoi ?

20. Listez les propriétés du produit de convolution.

21. Pourquoi la transformée de Fourier d’une image est-elle représentée avec deux images ?

22. Pourquoi appliquer une transformation d’intensité sur le module de la transformée de Fourier ?

23. La transformée de Fourier de Lena (de taille 512

ressemble la transformée de Fourier de Lena redimensionnée à 128

512 pixels) est représentée figure 15. À quoi

128 pixels ?

×

×

24. À quoi correspond l’opération de filtrage dans le domaine spatial ? Et dans le domaine fréquentiel ?

25. Quelle opération permet de flouter une image ?

26. Listez les propriétés de la transformée de Fourier.

27. Quelles sources avez-vous utilisées pour compléter vos connaissances afin de répondre aux

questions ci-dessus ?

13/13