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