Module TOI3 : Réhaussement et restauration d`images

Transcription

Module TOI3 : Réhaussement et restauration d`images
ENSIM 5A VAC
Année 2016/2017
Module TOI3 :
Réhaussement et restauration d’images
I°) Dans cette section on rappelle les différents formats d’images dans Matlab. Les 3 types de
données sont:
uint8 Les nombres sont codés comme des entiers non-signés sur 8 bits. Les valeurs
possibles vont de 0 a 255. Ce format est le plus économique en mémoire, mais ne permet pas
de faire des opérations algébriques.
uint16 Les nombres sont codés comme des entiers non-signés sur 16 bits. Les valeurs
possibles vont de 0 a 65535. Ce format est similaire a uint8 mais offre un gamme de valeurs
plus étendue. Il est rarement utilisé.
double Les nombres sont codés dans le format a virgule flottante sur 64 bits. Toute
valeur réelle est possible, dans les limites de précision. Ce format est le plus gourmand en
mémoire, mais permet de faire toutes les opérations algébriques.
Les 4 formats d'images sont:
indexed L'image est stockée dans une matrice 2D, dont les coefficients sont des
indices sur une table de couleurs associée (colormap). Pour les données uint8 et uint16 la
valeur 0 correspond a la première ligne de la colormap, 1 a la deuxième, et ainsi de suite. Pour
les données double c'est la valeur 1.0 qui correspond a la première ligne, 2 a la deuxième, et
ainsi de suite.
RGB ou truecolor L'image est stockée dans une matrice 3D, de dimensions (m, n, 3).
La troisième dimension donne la décomposition R, G, B de la couleur du pixel.
intensity L'image est stockée dans une matrice 2D dont les coefficients correspondent
à des niveaux de gris.
binary L'image est stockée dans une matrice 2D, dont les valeurs sont uniquement 0 ou
1 (noir, resp. blanc). Seulement des données uint8 et double sont admissibles pour des images
dans ce format.
colormap : C’est la table de couleurs associée a une image. C'est une matrice de type
double de m lignes et 3 colonnes. Chaque ligne donne la décomposition R,G,B d'une couleur.
Les coefficients doivent se trouver dans l'intervalle [0; 1]. Les images utilisées pour ce tp sont
accessibles sur cette URL: http://perso.univ-lemans.fr/~smontres/ENSIM/TOI3/tp_toi3.zip
II°) Rehaussement d’image 1 (méthodes ponctuelles)
Dans cette section, on compare plusieurs méthodes de rehaussement qui s’appuient
que le traitement de la dynamique de l’image par des méthodes de types ponctuelles qui
s’appliquent aux différents pixels d’une image de façon indépendante
1. Dans cette première question on test le rehaussement par normalisation de la dynamique. A
partir des valeurs extrémales de l’image initiale, programmez une fonction affine que vous
appliquerez sur l’image initiale afin que les valeurs extrémales de luminance de l’image
1
traitée coincident avec les frontières de la plage dynamique exploitable. Comparez les images
obtenues avant et après le traitement. Conclusion.
2. Utilisation d’une fonction de contraste : A l'aide d'une fonction que vous programmerez,
modifier la table des couleurs initiales d’une image entrée en argument selon la loi:
γ
γ
γ
r0 = r ;
g 0 = g ; b0 = b
r, g et b sont les valeurs originales des couleurs; r0, g0 et b0 les nouvelles valeurs et γ est le
facteur de correction. Visualiser l'image obtenue pour différentes valeurs de γ (typiquement
entre 0.5 et 2). Commentez les résultats affichés. Quel est le rôle de cette correction ?
III°) Rehaussement d’image 2 (méthodes spatiales)
Cette section est le lieu d’étude de techniques de rehaussement par des méthodes
spatiales utilisant des filtres de traitement linéaire ou non linéaire.
1. Rehaussement par le laplacien :
1-1 Programmez une fonction qui prend une image en argument d’entrée et qui renvoie
une image rehaussée avec la méthode du Laplacien.
1-2 On rappelle que l’opérateur Laplacien est un filtre linéraire dont la réponse
impulsionnelle bidimmensionnelle est donnée par la matrice [3x3] suivante :
0 1 0 
1 − 4 1


0 1 0
1-3 Quelle est la nature du rehaussement effectué par ce traitement ?
2. Méthode du cache filtré : Programmer une fonction qui prend une image en entrée et qui
rend une image réhaussée par cache filtré. On rappelle que cette méthode est basée sur le
calcul de la différence entre 2x l’image intiale et le résultat de son filtrage passe-bas. Pour le
filtre passe-bas vous pourrez utiliser une fonction porte 2D (ordre 3,5 ou 7). Comparez les
images obtenues avant et après traitement. Conclusion.
3. Filtrage médian : Le filtrage median est utilisé ici pour le rehaussement d’images
parasitées par du bruit. Dans cette section vous comparez la technique du filtre médian avec
celle utilisant un filtre linéaire invariant passe-bas pour rehausser une image bruitée. Les
fonctions matlab à utiliser sont medfilt2, conv2, imnoise.
3-1 A partir de l’image lena-y.jpg générer trois versions bruitées avec les options
suivantes de imnoise : gaussian et salt & pepper.
3-2 Appliquer sur chacune des images bruitées trois filtres linéraires dont les réponses
impulsionnelles sont des portes bidimensionnelles de rang 3, 5 et 7 et trois filtres médians de
rang 3, 5 et 7.
3-3 Comparer les images obtenues. Conclusion.
2
IV°) Restauration d’image par le Filtrage de Wiener
Dans cette question on se focalise sur le filtrage de Wiener pour lequel la restauration
d’image par application du filtre inverse est un cas particulier. Les fonctions devant etre
utilisées sont : fspecial, imfilter, deconwnr, imnoise. On étudie ici le cas de a restauraltion
sans bruit avec modèle de déformation connu.
Vous travaillerez sur l’image test1 : aerien.jpg
1. Générer un filtre h de déformation par mouvement de caméra. Les paramètres de
déformation sont laissés à votre libre choix. Afficher la réponse fréquentielle de la
déformation à l’aide de la fonction freqz2.
2. Appliquer le filtre de déformation à l’image test1 à l’aide de la fonction imfilter de
façon à générer l’image déformée Dtest1. Différentes conditions aux frontières sont
applicables pour le filtrage. Expliquer comment fonctionnent ces options. L’option
‘circular’ sera utilisée pour le filtrage.
3. Restaurer l’image Dtest1 à l’aide du filtre de déformation et de la fonction
deconvwnr. Recommencer la même opération à partir de la question 2 en utilisant les
options ‘replicate’ et ‘symmetric’. Comparez les résultats obtenus. Conclusion.
V°) Réduction du bruit de speckle.
Dans cette section vous allez mettre en place un petit protocole de test permettant de
comparer deux familles de méthodes utilisées pour le débruitage d’images speckle : Le filtrage
médian et les ondelettes stationnaires. Pour le filtrage médian vous utiliserez les fonctions
maltab de la toolbox image processing (cf question II°). Pour les ondelettes stationnaires vous
utiliserez la fonction stawavden() dont le code est fourni et qui utilise ellle-meme des
fonctions de la toolbox wavelet.
Base de test: Les images de tests utlisées pour cette question sont contituées par cinq
interférogrammes simulés d’holographie numérique dont on contrôle le niveau de bruit de
speckle. Il s’agit en fait d’un même motif simulé avec 5 rapports signal sur bruit différents. La
phase déroulée du motif est une tache gaussienne assymmetrique qui pourrait par exemple
représenter une information de déplacement de la surface d’un matériau sous contrainte
mécanique. Les images sont données en valeurs de phase réparties de –π à +π. Pour chaque
image, on donne la phase bruitée et la phase brute. Elles sont contenues dans le fichier
database.zip. Il y a un répertoire par motif. Dans chacun des répertoires le fichier à utiliser est
le fichier PhaseDATA.mat
Protocole de test : Le protocole de test prend en entrée la phase bruitée puis en extrait l’image
en sinus et en cosinus. Le débruitage est alors effectué sur le cosinus et le sinus bruité. A partir
de ces deux images est calculée la phase débruitée et enroulée modulo 2π. Εxemple :
>> debruit_phase = angle( debruit_cos + j*debruit_sin) ;
Critère d’évaluation : Le critère d’évaluation est alors constitué par la déviation standard de
l’erreur de phase entre la phase débruitée et la phase bruitée. Exemple :
>> Erreur_phase = angle(exp(j*(debruit_phase – pure_phase))) ;
>> deviation = std2(Erreur_phase) ;
3
Pour les tests vous allez évaluer huit algorithmes en tout. 4 médians d’ordre 5,7, 9 et 13 et 4
ondelettes stationnaires : ‘db8’, ‘db4’, ‘sym8’ et ‘sym4’. Pour les filtres médians vous
utiliserez l’option ‘symmetric’ pour les conditions aux frontières. Pour les ondelettes
stationnaires vous utiliserez trois niveaux de décompositions et un seuillage dur. Le
paramètre de surestimation du bruit ne sera pas utilisé.
Utilisation de la fonction stawavden :
function [XX,wDEC,TwDEC] =
stawavden(Y,WAVTYPE,lev,sorh,surrest);
Y : image en entrée
WAVTYPE : type d’ondelettes. Exemple WAVTYPE = ‘db8’ ; choix de l’ondelette de
Daubechies de régularité 8.
lev : nombre de niveaux décomposition.
sorh: type de seuillage. Exemple : sorh = ‘h’ ; pour un seuillage dur.
surrest: paramètre de surestimation du bruit (defaut = 1).
XX = image en sortie
wDEC = tableau de tableaux contenant l’ensemble des coefficients d’ondelettes
TwDEC= tableau de tableaux contenant l’ensemble des coefficients d’ondelettes après
seuillage.
Remarque : pour le protocole vous n’avez pas besoin de sortir les tableaux de coefficients
d’ondelettes. Exemple d’appel :
>> XX = stawavden(Y,’db8’,3,’h’) ;
Remarque très importante : Avant de proceder au débruitage de vos images avec les fonctions
medfilt2 et stawavden vous devrez les normaliser de façon à obtenir des images en niveaux de
gris [0 255]. A l’inverse, en sortie des fonctions vous devrez revenir au format intial, [-1 +1]
pour des sin et des cos, avant de calculer la phase débruitée à partir des sin et cos débruités.
Travail à résaliser : Vous reporterez sur un tableau 5x8 les valeurs des deviations standards
calculées pour chacun des motifs et pour les 8 algorithmes ainsi définis. Enfin en effectuant la
moyenne des résultats sur les 5 motifs pour chaque méthode, vous donnerez un classement des
méthodes évaluées sur la base du protocole retenue. Conclusion.
Source :
Montresor S, Picart P.
Quantitative appraisal for noise reduction in digital holographic phase imaging.
Opt Express. 2016 Jun 27;24(13):14322-43.
4