Exercices de Traitement d`Image Transformée de Fourier Sous

Transcription

Exercices de Traitement d`Image Transformée de Fourier Sous
INP Grenoble
ENSIMAG
2ème année
Traitement d’images
2003/2004
Exercices de Traitement d’Image
Transformée de Fourier
Exercice 1 Calculer la transformée de Fourier des fonctions suivantes définies sur IR :
2
1
2
f (x) = e−πx , f (x) = e−|x| , f (x) = e−x−x , f (x) =
1+
x2
a2
Exercice 2 Calculer la transformée de Fourier des distributions :
δ, 1, cos(2πkx)
Exercice 3 Calculer la transformée de Fourier bidimensionnelle des fonctions :
f (x, y) = e−π(x
2 +y2 )
, f = 1 sur [0, 1]2 et 0 sinon, f (x, y) = cos(2πky)
Exercice 4 Soit g une fonction de L2(IR2 ). On pose :f (x, y) = g(−y, x).
Montrer que la transformée de Fourier de f vérifie :
fˆ(ω1 , ω2 ) = fˆ(−ω2 , ω1 ), ∀ω1 , ω2 ∈ IR
Sous-échantillonnage, sur-échantillonnage
Exercice 5 Sous-échantillonnage
On considère un signal discret infini (f [n])n∈ZZ.
La Transformée de Fourier Discrète de ce signal est définie par la série :
fˆ(ω) =
X
f [n] e−iωn
n∈ZZ
∗
On décime le signal f : soit M ∈ IN , et g[n] = f [nM ] pour n ∈ ZZ.
Montrer que
M −1
1 X ˆ ω − 2kπ
ĝ(ω) =
)
f(
M
M
k=0
(Indication : partir du membre de droite de l’égalité)
A quel théorème ce résultat vous fait-il pensez?
19
(1)
Exercice 6 Interpolation d’image par FFT
Soit (Fnm )0≤n,m≤N −1 une image numérique (réelle) de taille N × N . On souhaite “agrandir” cette
image en doublant sa taille et sa résolution.
On imagine alors la méthode suivante :
1. Décomposition de l’image F sur la base de Fourier discrète 2D, en utilisant l’algorithme de FFT
2D.On obtient alors une matrice de coefficients F̂ de taille N 2 .
2. Plongement de la matrice F̂ dans une matrice Ĝ de taille 4N 2 en ajoutant des zéros correspondant
à des coefficients de haute fréquence.
3. FFT 2D inverse de la matrice Ĝ pour obtenir une image G de taille 4N 2 .
1. Décrire complètement l’étape 1 et donner l’expression des coefficients F̂ .
2. En utilisant les symétries de la Transformée de Fourier Discrète d’une image réelle, expliquer
exactement comment doit être contruite la matrice Ĝ.
3. Donner la relation entre G et F et vérifier que la méthode utilisée est une méthode permettant
d’interpoler l’image F .
Convolution, filtrage
Exercice 7 On considère l’image :










0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0










(2)
représentant un modèle de bord oblique. On cherche un filtre de détection du bord de cette image.
1. Donner deux exemples de filtres capables de détecter ce bord : le premier en vous inspirant des
opérateurs différentiels d’ordre 1 ; le deuxième en vous inspirant des opérateurs différentiels d’ordre 2.
2. Pour chacun des deux exemples choisis, calculer la matrice filtrée. Commenter, dans chacun des
cas, comment se fait la détection du bord en pratique. Commentaires?
Exercice 8 Soit f et g deux fonctions de variable réelle, 2π-périodiques, intégrables sur leur période.
On pose h = f ∗ g où le produit de convolution périodique est défini par :
Z 2π
1
h(x) = (f ∗ g)(x) =
f (x − t)g(t)dt
2π 0
1. Montrer que h est définie presque partout, 2π-périodique, intégrable sur sa période.
2. Calculer les coefficients de Fourier de h en fonction de ceux de f et g.
Exercice 9 Soit a, b > 0.
20
2
2
1. Calculer la transformée de Fourier de la fonction h(x) = e−πax ∗e−πbx où f ∗g désigne le produit
de convolution :
Z
+∞
f ∗ g(x) =
−∞
f (y)g(x − y)dy
2
2. En déduire que h(x) = λe−πcx où λ et c sont des constantes à déterminer.
Exercice 10 Soit (f [n, m])n,m=0,N −1 une image de taille N 2. On rappelle la formule de sa Transformée de Fourier Discrète :
fˆ[k1 , k2 ] =
N
−1 N
−1
X
X
f [n, m] exp(−2iπ
n=0 m=0
k1n + k2 m
) , k1 , k2 = 0, N − 1
N
On prolonge l’image f [n, m] par périodisation, i.e. on définit :
F [n, m] = f [nmod[N ], mmod[N ]] ∀n, m ∈ ZZ
On appelle convolution circulaire de deux images f et g de taille N 2 périodisées :
f ∗ g[n, m] =
N
−1 N
−1
X
X
p=0 q=0
F [p, q]G[n − p, m − q] , ∀n, m ∈ ZZ
1. Montrer que f ∗ g est une image périodique.
2. Montrer que la transformée de Fourier Discrète de h = f ∗ g vérifie :
ĥ[k1 , k2 ] = fˆ[k1 , k2 ]ĝ[k1 , k2]
Exercice 11 Transformée en Z bidimensionnelle
On définit la transformée en Z d’une suite x = (x[n])n∈ZZ par :
X(z) =
n=+∞
X
n=−∞
1. Soit x =
n=∞
P
n=−∞
x[n]z −n , ∀z ∈ C
l
(3)
x[n]δna . On rappelle que la distribution δna (masse de Dirac au point na, a > 0)
admet comme transformée de Fourier au sens des distributions :
−2iπωna
δc
na (ω) = e
Trouver la relation liant x̂ à X.
2. On suppose maintenant que x = y ∗ z où * désigne le produit de convolution discrète 1D entre
les deux suites y = (y[n])n∈ZZ et z = (z[n])n∈ZZ.
Montrer que :
X(z) = Y (z)Z(z)
où X, Y, Z désignent les transformées en Z respectives des suites x, y, z.
3. Soit une image infinie F = (F [n, m])n,m∈ZZ2 . On appelle transformée en Z bidimensionnelle de
F la fonction :
n=+∞
X
X m=+∞
l
F [n, m]z1−n z2−m , ∀z1 , z2 ∈ C
F (z1 , z2 ) =
n=−∞ m=−∞
21
On considère que F est une image séparable, F [n, m] = h[n]g[m]. Montrer qu’alors F s’écrit comme
le produit d’une fonction de z1 par une fonction de z2 . A quoi correspondent-elles ?
Exercice 12 Filtrage bidimensionnel
On considère le filtrage en série suivant :
y[k, l] = x[k − 1, l] + 2 x[k, l] + x[k + 1, l]
z[k, l] = y[k, l − 1] + 2 y[k, l] + y[k, l + 1]
1. Calculer le filtre bidimensionnel g associé tel que z = g ∗ x, où ∗ représente la convolution 2D.
2. Soit G la transformée en Z bidimensionnelle du filtre g.
Montrer que :
G(z1 , z2 ) = H(z1 )H(z2 )
où H est la transformée en Z (équation 3) associée au filtre h = [1 2 1].
Calculer alors G.
Exercice 13 Filtre à réponse impulsionnelle infinie
Le but de cet exercice est de trouver le filtre associé à la transformation de l’image infinie x (entrée)
en l’image infinie y (sortie) selon le schéma suivant:
K X
P
X
k=0 p=0
′
b[k, p]y[n − k, m − p] =
′
K X
P
X
k′ =0 p′ =0
a[k′ , p′]x[n − k′ , m − p′ ]
1. Effectuer la transformée en Z bidimensionnelle de chaque membre. En déduire l’expression de
H tel que :
Y (z1 , z2 ) = H(z1 , z2 )X(z1, z2 )
2. Soit h la réponse impulsionnelle associée à la fonction de transfert H. On suppose que le filtre
h est réalisable, i.e. h[n, m] = 0 si n < 0 où m < 0. Montrer que, dans ce cas, on a :
∀n ≥ 0 et m ≥ 0
n X
m
X
k=0 p=0
b[n − k, m − p]h[k, p] = a[n, m]
3. En déduire une formule de récurrence permettant le calcul de h[n, m] dans le cas où a[0, 0] n’est
pas nul.
4. Soit H défini par :
1 + z −1
H(z1 , z2 ) =
1 − 12 z1−1 − 14 z2−1
Identifier a et b. Montrer que h vérifie la relation :
h[n, m] = b[n, m] −
n X
m
X
k=1 p=1
1
1
a[k, p]h[n − k, m − p] + h[n − 1, m] + h[n, m − 1]
2
4
En supposant toujours que le filtre h est réalisable, montrer par récurrence que l’on peut calculer tous
les coefficients du filtre h.
22
Détection de contours
Exercice 14 Construction de filtre
Donner un exemple de filtre discret (sous forme d’une matrice 3×3) permettant d’approcher l’opérateur
|
∂f
∂f
|+| |
∂x
∂y
Quelle va être l’utilisation en pratique de ce filtre?
Exercice 15 Détection de contours par DOG
1. On considère la gaussienne 1D d’écart type σ :
gσ (x) =
x2
1
√ e− 2σ2
σ 2π
et la différence de deux gaussiennes :
dogσ (x) = gσ (x) − gσ+δσ (x)
où δσ est un paramètre petit.
Calculer gσ′′ (x).
Facultatif : Montrer que si δσ est petit (Indication : faire un développement limité en δσ), on a
l’approximation :
√
2πdogσ (x) ≈ gσ′′ (x)
2. Soit une image (continue) F (x, y). Les contours de F vont être localisés par les passages par 0
du laplacien de l’image lissée par une gaussienne 2D :
Gσ (x, y) =
2
x2 +y 2
1
√ e− 2σ2
σ 2π
2
a) Calculer ∆Gσ = ∂∂xG2σ + ∂∂yG2σ .
b) Montrer que ∆(F ∗ Gσ ) = F ∗ ∆Gσ , où * désigne la convolution continue 2D.
c) On pose
DOGσ (x, y) = Gσ (x, y) − Gσ+δσ (x, y)
Montrer que si δσ est petit, on a l’approximation :
√
2πDOGσ (x) ≈ ∆Gσ (x, y)
d) En déduire une méthode rapide pour calculer ∆(F ∗ Gσ ).
Exercice 16 Filtrage multi-échelle par dérivée seconde de Gaussienne
Dans ce qui suit la transformée de Fourier d’une fonction f est notée fˆ et est égale à (si f ∈ L1 (IR)):
Z +∞
ˆ
f (x)e−2iπνx dx
f (ν) =
−∞
Soit ψ ∈ L1 (IR) ∩ L2 (IR) une fonction à valeurs réelles. Pour a > 0 on pose :
1
x
ψa(x) = √ ψ( )
a a
1. Calculer la transformée de Fourier de ψa en fonction celle de ψ.
23
2. Pour une fonction f ∈ L2 (IR), on définit le filtrage de f à l’échelle a par les coefficients :
W (a, x) = (f ∗ ψ̌a)(x)
en posant ψ̌(x) = ψ(−x).
Vérifier que le coefficient W (a, x) est bien défini pour tout a > 0 et tout x ∈ IR.
3. Montrer que :
Z +∞
Z +∞
2
|f (ν)|2 |ψ(aν)|2 dν
|W (a, x)| dx = a
−∞
−∞
En déduire que :
Z
+∞
|f (x)| dx = cψ
−∞
où cψ est égal à :
2
cψ =
Z
Z
0
+∞ Z +∞
+∞
0
R +∞
−∞
|W (a, x)|2
da
dx
a2
|ψ̂(ξ)|2
dξ
ξ
4. On suppose que −∞ ψ(x)dx = 0. Montrer que les hypothèses sur la fonction ψ impliquent que
la constante cψ de la question 3 est bien définie.
2
5. Exemple : Soit θ(x) = e−πx et soit ψ la fonction définie par ψ(x) = θ′′ (x).
Calculer les expressions de ψ et ψ̂. En déduire que ψ vérifie les hypothèses de la question 5.
6. Montrer que
1 d2
W (a, x) = 2 2 (f ∗ θa )(x)
a dx
1
x
où θa (x) = √a θ( a ) Que représentent les coefficients W par rapport à la fonction f ?
Quel est le rôle du paramètre a?
7. Ecrire un algorithme permettant de calculer en pratique les coefficients W (a, x).
Décomposition d’images
Exercice 17 Base continue de cosinus IV
Montrer que la famille (gk )k≥0 définie par :
gk (t) =
√
1
2 cos (k + )πt , ∀t ∈ [0, 1]
2
est une base orthonormée de L2 ([0, 1]).
Indication : pour f ∈ L2 ([0, 1]), on prolongera f en une fonction f˜ de période 4, symétrique par
rapport à 0 et antisymétrique par rapport à 1 et −1.
Exercice 18 Base discrète de cosinus IV
Pour k = 0, N − 1, on pose :
gk [n] =
r
2
cos
N
π
1
1
(k + )(n + )
N
2
2
24
∀n = 0, N − 1
1. Montrer que la famille {gk ; k = 0, N − 1} est une base orthonormée de IRN .
2. En déduire une base orthonormée pour l’espace IRN × IRN .
Donner l’expression des formules de décomposition-recomposition d’une image f [n, m] de taille N 2
dans une telle base.
Exercice 19 Transformée de Hartley
Pour t ∈ IR, on définit la fonction
cas(t) = cos(t) + sin(t)
A - Base continue de Hartley
Pour k ∈ ZZ on définit la famille :
gk (t) = cas(2πkt)
1. Montrer que {gk (t); k ∈ ZZ} est une famille orthonormée pour le produit scalaire de L2 (0, 1).
2. Vérifier que pour tout k ∈ IN on a :
cos(2πkt) =
gk (t) + g−k (t)
2
et
sin(2πkt) =
gk (t) − g−k (t)
2
3. En déduire que toute fonction f ∈ L2 (0, 1) s’écrit :
X
f (t) =
ck cas(2πkt)
k∈ZZ
où les coefficients ck sont des coefficients réels que l’on explicitera.
B - Base Discrète de Hartley
Soit N un entier divisible par 2. Pour k = 0, N − 1 on définit la famille de vecteurs de IRN :
gk [n] = cas(
4. Pour q = 0, N − 1, calculer :
2πkn
),
N
N
−1
X
e
∀n = 0, N − 1
2iπqn
N
n=0
PN −1
2πqn
n=0 cos( N )
PN −1
2πqn
n=0 sin( N ).
et
En déduire
5. Montrer que la famille de vecteurs
{(gk [n])n=0,N −1 ; k = 0, N − 1}
est une base orthonormée de IRN , muni du produit scalaire euclidien.
6. Soit (f [n])n IRN un vecteur de IRN . En utilisant sa transformée de Fourier discrète inverse :
∈
f [n] =
N/2
X
2iπkn
fˆk e N ,
k=−N/2+1
montrer que (f [n]) est combinaison linéaire des (gk [n]).
(Indication : décomposer fˆk = ak + ibk où ak et bk sont réels).
En déduire un algorithme rapide, basé sur la FFT, pour calculer les coefficients de (f [n]) sur la base
(gk [n]).
25
C - Décomposition de Hartley d’une image
Soit F [n, m] une image de taille N 2 .
7. Montrer que l’on a :
F [n, m] =
N −1 N −1
1 X X
k1n + k2 m
) ,
F̂ (k1 , k2 ) cas(2π
N
N
k1 =0 k2 =0
∀n, m = 0, N − 1
où l’on explicitera les coefficients F̂ (k1 , k2 ) en fonction des F [n, m].
Exercice 20 Décomposition de Haar
Soit H4 la matrice :


1
1
1
1
1  √1
−1 

√1 −1
H4 = 

2  2 − 2 √0
√0
0
0
2 − 2
1. Montrer que H4 est la matrice de décomposition de Haar dans IR4 (à une constante multiplicative
près).
2. En déduire l’expression de H4−1 .
J
3. Donner l’expression de H2J , matrice de la décomposition de Haar dans IR2 , et celle de son
inverse H2−1
J .
Exercice 21 Compression d’image par le format JPEG
Soit F = (Fnm )0≤n,m≤31 une image numérique de taille 32x32 valant :
Fnm = 1 pour (n = 8, 23 et m = 6, 19) et 0 sinon.
1. Expliquer la décomposition DCT par blocs utilisée dans le format JPEG et calculer cette
décomposition pour l’image F .
2. On comprime F au format JPEG en ne retenant que 16 coefficients dans la décomposition
précédente. Ecrire la matrice de coefficients retenue et calculer le taux de compression correspondant.
3. Calculer l’image comprimée F̃ et calculer l’erreur l 2 obtenue avec l’image originale.
26