DCT DFT Principes Filtres Implementation Ondelettes
Analyse frequentielleUPEM - Master 1
Vincent Nozick
Vincent Nozick Analyse frequentielle 1 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Analyse frequentielle
La transformee de Fourier fait peur :
• on commence par plus simple : DCT
• ensuite la transformee de Fourier
• puis les ondelettes
Vincent Nozick Analyse frequentielle 2 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee en cosinus discrete
DCT :
• en anglais : Discrete Cosine Transform
• exprime un signal d’entree dans une base de fonctions
• base de fonctions : cosinus
• representation frequentielle
• transformation inversible
Vincent Nozick Analyse frequentielle 3 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DCT : avec les mains
Une base de fonctions :
Vincent Nozick Analyse frequentielle 4 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DCT : avec les mains
image = base de ⊗ coefficientsfonctions
Vincent Nozick Analyse frequentielle 5 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DCT : avec les mains
image = base de ⊗ coefficientsfonctions
Vincent Nozick Analyse frequentielle 6 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DCT : avec les mains
image = base de ⊗ coefficientsfonctions
Vincent Nozick Analyse frequentielle 7 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DCT : avec les mains
image = base de ⊗ coefficientsfonctions
Vincent Nozick Analyse frequentielle 8 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DCT : avec les mains
On peut prendre une base de fonctions plus grande.
Vincent Nozick Analyse frequentielle 9 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Fonctions orthogonales
Vecteurs orthogonaux :
x1.y1 + x2.y2 + ...+ xn.yn =∑i
xi.yi = 0
Fonctions orthogonales sur un domaine de definition D :∫Df(x) · g(x)dx = 0
Fonctions discretes orthogonales :∑i
f [i] · g[i] = 0
Vincent Nozick Analyse frequentielle 10 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DCT 1D
Base de fonctions sinusoıdales :
• base de fonctions :• fn(x) = cos(nx) sur [−π, π] avec n ∈ Z• inclue f0(x) = 1
• orthogonales sur [−π, π], avec m,n ∈ Z, m 6= n∫ π
−πcos(mx) cos(nx)dx =
π sin(m− n)2(m− n)
− π sin(m+ n)
2(m+ n)= 0
• fonctions orthogonales ⇒ unicite de la decomposition d’unefonction f dans cette base.
Vincent Nozick Analyse frequentielle 11 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DCT
Applications :
• jpeg
• mpeg
• mp3
• ...
Vincent Nozick Analyse frequentielle 12 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier
Analyse de Fourier :
• exprime une fonction comme une somme ponderee desinusoıdes :
• a decalage de phase• avec une amplitude• et a frequence variable
• les poids et les phases associees aux frequences caracterisentle signal dans le domaine des frequences.
Vincent Nozick Analyse frequentielle 13 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier 1D
Principe :
• transforme une fonction f (integrable sur R) en une fonction Fdecrivant le spectre frequentiel de f .
• plusieurs formulations dont :
F (t) =
∫ ∞−∞
f(x) e−i2πtxdx
• equivalent dans un espace discret :
F [t] =N−1∑x=0
f [x] e−i2πtxN
Vincent Nozick Analyse frequentielle 14 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DFT et DCT
DCT DFT
Xk =N−1∑n=0
xn cos[ πN
(n+
1
2
)k]
Xk =N−1∑n=0
xn e−i2πknN
avec e−i2πknN = cos(2π knN )− i sin(2π knN )
• DCT : cos → 1 parametre (reel)
• DFT : cos+i sin → 2 parametres (complexe)
Vincent Nozick Analyse frequentielle 15 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier et DCT
DCT : cos → 1 parametre (reel)DFT : cos+i sin → 2 parametres (complexe)
Plus precisement :
• DCT : le noyau de projection est un cosinus et cree descoefficients reels.
• DFT : le noyau est une exponentielle complexe et qui cree descoefficients complexes.
Vincent Nozick Analyse frequentielle 16 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier
Propriete :
• linearite :F(a1f1 + a2f2
)= a1F1 + a2F2
ou F est la fonction de transformee de Fourier
• symetrie :F (−u,−v) = F ∗(u, v)
ou (x+ iy)∗ = x− iy (complexe conjugue)
Vincent Nozick Analyse frequentielle 17 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier
Signal 1D :
F (t) =
∫ ∞−∞
f(x) e−i2πtxdx
Image 2D :
F (u, v) =
∫∫ ∞−∞
f(x, y) e−i2π(ux+vy)dxdy
avec :
• x et y : coordonnees dans l’image.
• u et v : coordonnees dans l’espace des frequences.
Vincent Nozick Analyse frequentielle 18 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier Discrete
Espace 2D continue :
F (u, v) =
∫∫ ∞−∞
f(x, y) e−i2π(ux+vy)dxdy
Espace 2D discret :
F [u, v] =
M−1∑x=0
N−1∑y=0
I[x, y] e−i2π(uxM
+ vyN
)
pour une image M ×N , il faut une base de MN fonctions.
Vincent Nozick Analyse frequentielle 19 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier Discrete
Transformee de Fourier Discrete : DFT
F [u, v] =M−1∑x=0
N−1∑y=0
I[x, y] e−i2π(uxM
+ vyN
)
Transformee inverse : IDFT
I[x, y] =1
MN
M−1∑u=0
N−1∑v=0
F [x, y] ei2π(uxM
+ vyN
)
Vincent Nozick Analyse frequentielle 20 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier Discrete
F [u, v] =M−1∑x=0
N−1∑y=0
I[x, y] e−i2π(uxM
+ vyN
)
La encore :la fonction F [u, v] a 2 composantes :
• une composante reelle
• une composante imaginaire
Pour l’affichage, on prefere les coordonnees polaires :
• la magnitude Mag =√Re2 + Im2
• la phase : φ = arctan(Im/Re)
Vincent Nozick Analyse frequentielle 21 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier Discrete
image magnitude phase
Vincent Nozick Analyse frequentielle 22 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier Discrete
Magnitude : symetrie centrale (cos2+sin2 est une fonction paire)
Vincent Nozick Analyse frequentielle 23 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Transformee de Fourier Discrete
Phase : anti-symetrie centrale
Vincent Nozick Analyse frequentielle 24 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Magnitude
magnitude phase image
en x = ±5 → genere une sinusoıde sur l’image.
Vincent Nozick Analyse frequentielle 25 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Magnitude
magnitude phase image
en x = ±10 → genere une sinusoıde sur l’image.
Vincent Nozick Analyse frequentielle 26 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Magnitude
magnitude phase image
en y = ±5 → genere une sinusoıde sur l’image.
Vincent Nozick Analyse frequentielle 27 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Magnitude
magnitude phase image
en ±(−3, 3) → genere une sinusoıde sur l’image.
Vincent Nozick Analyse frequentielle 28 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Magnitude
magnitude phase image
2 points
Vincent Nozick Analyse frequentielle 29 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Phase
magnitude phase image
sans phase
Vincent Nozick Analyse frequentielle 30 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Phase
magnitude phase image
avec phase
Vincent Nozick Analyse frequentielle 31 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Quizz
Que se passe-t-il sur la transformee de Fourier :
• d’une image qu’on rotate ?
idealement, rotation de la magnitude et de la phase→ en pratique, effets de bords.
• d’une image qu’on translate ?
idealement, seul la phase change.
• d’une image qu’on scale de moitie ?
magnitude cropee.
Vincent Nozick Analyse frequentielle 32 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Quizz
Que se passe-t-il sur la transformee de Fourier :
• d’une image qu’on rotate ?idealement, rotation de la magnitude et de la phase→ en pratique, effets de bords.
• d’une image qu’on translate ?
idealement, seul la phase change.
• d’une image qu’on scale de moitie ?
magnitude cropee.
Vincent Nozick Analyse frequentielle 32 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Quizz
Que se passe-t-il sur la transformee de Fourier :
• d’une image qu’on rotate ?idealement, rotation de la magnitude et de la phase→ en pratique, effets de bords.
• d’une image qu’on translate ?idealement, seul la phase change.
• d’une image qu’on scale de moitie ?
magnitude cropee.
Vincent Nozick Analyse frequentielle 32 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Quizz
Que se passe-t-il sur la transformee de Fourier :
• d’une image qu’on rotate ?idealement, rotation de la magnitude et de la phase→ en pratique, effets de bords.
• d’une image qu’on translate ?idealement, seul la phase change.
• d’une image qu’on scale de moitie ?magnitude cropee.
Vincent Nozick Analyse frequentielle 32 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Exemples
Vincent Nozick Analyse frequentielle 33 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Exemples
Vincent Nozick Analyse frequentielle 34 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Exemples
Vincent Nozick Analyse frequentielle 35 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Exemples
Vincent Nozick Analyse frequentielle 36 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Exemples
Vincent Nozick Analyse frequentielle 37 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Quizz 2
(a) (b) (c)
(1) (2) (3)Vincent Nozick Analyse frequentielle 38 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtrage
Filtre frequentiels :La transformee de Fourier permet essentiellement de faire du filtragefrequentiel.↪→ on annule l’amplitude de certaines frequences.
Vincent Nozick Analyse frequentielle 39 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre passe bas
Vincent Nozick Analyse frequentielle 40 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre passe haut
Vincent Nozick Analyse frequentielle 41 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre passe bande
Vincent Nozick Analyse frequentielle 42 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre vertical
Vincent Nozick Analyse frequentielle 43 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre chelou
Vincent Nozick Analyse frequentielle 44 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Convolutions
Theoreme de convolution :la convolution de 2 fonctions dans le domaine spatiale est equivalentea la multiplication terme a terme dans le domaine frequentiel.
Plus precisement :soient f(x, y) une image et h(x, y) un filtre de convolution, alors :
F(f(x, y) ∗ h(x, y)
)= F
(f(x, y)
)F(h(x, y)
)= F (u, v)H(u, v)
Note : ce theoreme ne fonctionne pas pour la DCT.
Vincent Nozick Analyse frequentielle 45 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Convolutions
En pratique :soient f(x, y) une image et h(x, y) un filtre de convolution, alors :
1 F = DFT(f)
2 redimentionner h a la resolution de f
3 H = DFT(h)
4 F ′ = F ⊗H ⊗ : multiplication magnitude terme a terme
5 f ′ = IDFT(F ′)
Vincent Nozick Analyse frequentielle 46 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre gaussien
image originale kernel gaussien
Vincent Nozick Analyse frequentielle 47 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre gaussien
image Fourier kernel Fourier
Vincent Nozick Analyse frequentielle 48 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre gaussien
magnitude ⊗ kernel image filtree
Vincent Nozick Analyse frequentielle 49 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre Sobel x
F(kernel) image filtree
Sx =
−1 0 1−2 0 2−1 0 1
Vincent Nozick Analyse frequentielle 50 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre Sobel y
F(kernel) image filtree
Sy =
−1 −2 −10 0 01 2 1
Vincent Nozick Analyse frequentielle 51 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Filtre Laplacien
F(kernel) image filtree
L =
0 1 01 −4 10 1 0
Vincent Nozick Analyse frequentielle 52 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Implementation
Fast Fourier Transform (FFT) :
• transformation separable : (plus rapide)
transformation 2D (m× n) ↔ m transformation 1D (n)
• pour les images dont la taille est une puissance de 2 :approche recursive
• complexite classique : O(n2) ↔ FFT : O(n log n)pour une grand nombre de pixels n : grosse difference
• implementation gpu
Vincent Nozick Analyse frequentielle 53 / 83
DCT DFT Principes Filtres Implementation Ondelettes
En pratique
image de depart
Vincent Nozick Analyse frequentielle 54 / 83
DCT DFT Principes Filtres Implementation Ondelettes
DFT
partie reelle partie imaginaire
Vincent Nozick Analyse frequentielle 55 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Recentrage
partie reelle partie imaginaire
Vincent Nozick Analyse frequentielle 56 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Recentrage
partie reelle partie imaginaire
Vincent Nozick Analyse frequentielle 57 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Cartesien → polaire
amplitude√Re2 + Im2 phase : φ = atan(Im/Re)
Vincent Nozick Analyse frequentielle 58 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Affichage
255 log(x+ 1)/max 255x/(2max+ 1) + 127
Vincent Nozick Analyse frequentielle 59 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Et la couleur
Couleur RGB :
Vincent Nozick Analyse frequentielle 60 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Analyse frequentielle
On n’a plus peur de la transformee de Fourier
Vincent Nozick Analyse frequentielle 61 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Ondelettes
Principe
• concept plutot recent (∼1980)
• representation spatiale et frequentielle
• bases de fonction, plusieurs possibilites :• Haar• Morlet• Meyer• autres ...
• approche multiresolution
Vincent Nozick Analyse frequentielle 62 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Ondelettes
Haar :
+1 | − 1
Vincent Nozick Analyse frequentielle 63 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Graphiquement
97
35
Code :
Vincent Nozick Analyse frequentielle 64 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Graphiquement
97
35
Code :
Vincent Nozick Analyse frequentielle 65 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Graphiquement
8
35
Code : 1
Vincent Nozick Analyse frequentielle 66 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Graphiquement
8
35
Code : 1
Vincent Nozick Analyse frequentielle 67 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Graphiquement
8
4
Code : 1 − 1
Vincent Nozick Analyse frequentielle 68 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Graphiquement
8
4
Code : 1 − 1
Vincent Nozick Analyse frequentielle 69 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Graphiquement
6
Code : 1 − 1 2 6
Vincent Nozick Analyse frequentielle 70 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Avec les mains
+1 | − 1
Signal original
9 7 3 5
resolution moyennes coefficients
1 9 7 3 5 -2 8 4 1 -13 6 2
Vincent Nozick Analyse frequentielle 71 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Avec les mains
resolution moyennes coefficients
1 9 7 3 5 -2 8 4 1 -13 6 2
Resultat avec Haar :
signal original signal transforme
9 7 3 5 6 2 1 -1
Vincent Nozick Analyse frequentielle 72 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Avec les mains
Reconstruction du signal :
6
6 6 6 6
2
8 8 4 4
1 -1
9 7 3 5
Vincent Nozick Analyse frequentielle 73 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Avec les mains
Reconstruction du signal :
6 6 6 6 62
8 8 4 4
1 -1
9 7 3 5
Vincent Nozick Analyse frequentielle 73 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Avec les mains
Reconstruction du signal :
6 6 6 6 62
8 8 4 4
1 -1
9 7 3 5
Vincent Nozick Analyse frequentielle 73 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Avec les mains
Reconstruction du signal :
6 6 6 6 62 8 8 4 41 -1
9 7 3 5
Vincent Nozick Analyse frequentielle 73 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Avec les mains
Reconstruction du signal :
6 6 6 6 62 8 8 4 41 -1
9 7 3 5
Vincent Nozick Analyse frequentielle 73 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Avec les mains
Reconstruction du signal :
6 6 6 6 62 8 8 4 41 -1 9 7 3 5
Vincent Nozick Analyse frequentielle 73 / 83
DCT DFT Principes Filtres Implementation Ondelettes
En 2d ?
Haar :
Vincent Nozick Analyse frequentielle 74 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
Haar :
Transformation :
• B1 = 14(A1+A2+A3+A4)
• B2 = 14(A1−A2+A3−A4)
• B3 = 14(A1+A2−A3−A4)
• B4 = 14(A1−A2−A3+A4)
Transformation inverse :
• A1 = B1 +B2 +B3 +B4
• A2 = B1−B2 +B3−B4
• A3 = B1 +B2−B3−B4
• A4 = B1−B2−B3 +B4
Vincent Nozick Analyse frequentielle 75 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
Vincent Nozick Analyse frequentielle 76 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
Vincent Nozick Analyse frequentielle 77 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
Vincent Nozick Analyse frequentielle 78 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
residu
level 5 level 4 level 3 level 2 level 1
Vincent Nozick Analyse frequentielle 79 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
residu level 5
level 4 level 3 level 2 level 1
Vincent Nozick Analyse frequentielle 79 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
residu level 5 level 4
level 3 level 2 level 1
Vincent Nozick Analyse frequentielle 79 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
residu level 5 level 4 level 3
level 2 level 1
Vincent Nozick Analyse frequentielle 79 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
residu level 5 level 4 level 3 level 2
level 1
Vincent Nozick Analyse frequentielle 79 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
residu level 5 level 4 level 3 level 2 level 1
Vincent Nozick Analyse frequentielle 79 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
Debruitage : sur les niveaux 1 et 2
→ suppression de quelques artefacts jpeg.
Vincent Nozick Analyse frequentielle 80 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Pour les images
Debruitage : sur les niveaux 1 et 2
→ suppression de quelques artefacts jpeg.
Vincent Nozick Analyse frequentielle 80 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Ondelettes
Autres fonctions :
Vincent Nozick Analyse frequentielle 81 / 83
DCT DFT Principes Filtres Implementation Ondelettes
Ondelettes vs. Fourier
Fourier 1D :
• 1 somme sur la base de fonctions
Ondelettes 1D :
• 1 somme sur les niveaux de resolution
• 1 somme sur l’espace
Vincent Nozick Analyse frequentielle 82 / 83