TP 5
TP 5
TP 5
TP 5 - Parcimonie
1 - Matching Pursuit
1. Implémenter une fonction mp(A,b,K) qui prend en entrée une matrice A de taille p × n, un
vecteur b de taille p, leur applique K itérations de l’algorithme décrit dans le premier exercice
du TD et renvoie le x(K) obtenu.
2 - Déconvolution
2. Écrire une fonction spikes(N,p) qui prend en entrée un entier N et un réel p ∈ [0; 1] et
renvoie un vecteur constitué de N réalisations indépendantes de la variable aléatoire suivante :
X =YZ
où Y est une variable gaussienne de variance 1 et Z vaut 1 avec probabilité p et 0 avec probabilité
1 − p (avec Y et Z indépendantes).
3. a) On pose N2 = 30 et N = 200. Définir un filtre φ[k], k = −N/2 + 1, ..., N/2 dont la
transformée de Fourier vaut :
1
3 - Inpainting
7. a) Charger l’image http://www.di.ens.fr/~waldspurger/tds/13_14_s2/serre.png. L’af-
ficher. C’est normalement un tableau d’entiers à trois dimensions.
b) Déterminer l’ensemble S des indices des pixels rouges.
[Indication : les pixels rouges correspondent aux coordonnées k, n tels que im[k,n,1] = 255,
im[k,n,2] = 0 et im[k,n,3] = 0. La commande find(t) permet d’obtenir la liste des indices
des éléments non-nuls de t, pour tout tableau t.]
c) Convertir l’image en niveaux de gris par la commande im = double(mean(im,3)).
8. On va essayer de remplacer les pixels rouges par des valeurs donnant l’image la plus crédible
possible.
Au lieu de reconstruire directement les valeurs des pixels manquants, on va reconstruire les
coefficients de la transformée en ondelettes de Haar de l’image. On note x le vecteur des coeffi-
cients. La transformée en ondelettes d’une image réelle ayant généralement beaucoup de petits
coefficients, il est raisonnable de chercher x avec le plus de zéros possible.
a) Le vecteur x doit vérifier une contrainte de la forme Ax = b. Calculer A et b en fonction de
la matrice qui décrit l’inverse de la transformée en ondelettes.
b) On note T la matrice associée à la transformée en ondelettes et T −1 son inverse.
Montrer que, pour tout vecteur x, on a x − t A(Ax − b) = T z, où z est le tableau tel que
z[k, l] = (T −1 x)[k, l] si (k, l) ∈ S et z[k, l] = im[k, l] sinon.
9. a) Implémenter 500 itérations de l’algorithme décrit dans l’exercice 4 du TD, pour λ = 6.
b) Calculer l’image im rec associé au vecteur x obtenu et l’afficher.
c) Que se passe-t-il si on prend un λ trop grand (λ = 30, par exemple) ?
10. Améliorer le résultat par moyennage sur des versions translatées, comme dans le TP 3.
[Vous pouvez considérer seulement 9 translations au lieu de 81 et prendre λ un peu plus petit
que précédemment, par exemple λ = 3.]
Si vous souhaitez comparer vos résultats avec l’image originale, elle est disponible à l’adresse
http://www.di.ens.fr/~waldspurger/tds/13_14_s2/serre_original.png.