Cours Traitement d’images sous Matlab
![Cours Traitement d’images sous Matlab](/images/remos_downloads/CoursMatlab-id4149.4149.pdf_thumb_prev.jpg)
Traitement d’images sous Matlab
EI3 année 2009-2010
1 – Acquisition d’images sous Matlab p. 3
2 – Amélioration et restauration d’images p. 9
3 – Morphologie mathématique p. 13
Vandenbroucke Nicolas R11
1 – Acquisition d’images sous Matlab
L’objectif de ce TP est de prendre en main les outils de traitement d’images les plus classiques a l’aide` du logiciel Matlab. Matlab est un logiciel de calcul scientifique permettant de developper des solutions´ a des` problemes techniques. Il permet de r` ealiser du calcul num´ erique et de tracer des graphiques pour visualiser´ et analyser les donnees. Il dispose d’un langage et d’un environnement de programmation interactifs ainsi´ que d’outils pour concevoir des interfaces utilisateur graphiques. Matlab est associe´ a des boites` a outils` appele TOOLBOX permettant d’acc´ eder´ a des fonctions sp` ecifiques´ a un domaine d’application comme le` traitement d’images par exemple.
Les TP de traitement d’images realis´ es avec Matlab n´ ecessitent ainsi la toolbox´ Image Acquisition et la toolbox Image Processing. Les fonctions de cette derniere toolbox peuvent` etre listˆ ee en tapant la´ fonction help images dans l’editeur de commande de Matlab. Pour obtenir un descriptif d´ etaill´ e des ces´ fonctions, utiliser l’aide contextuelle en tapant la fonction help suivi du nom de la fonction ou utiliser l’aide en ligne en ouvrant l’application Helpdesk (en tapant la fonction helpdesk, par exemple). Avant de parcourir directement le sujet, vous pouver decouvrir les d´ emonstrations associ´ ees au toolbox´ Image Processing en tapant la fonction demos (ou directement le nom de la demonstration´ a d` ecouvrir).´
1 Prise en main
Ce premier exercice est destine´ a prendre en main les toolbox` Image Processing et Image Acquisition.
1.1 Rappel sur Matlab
La figure 1 montre la decomposition de Matlab en plusieurs fen´ etres :ˆ
• une fenetre d’ˆ edition des commandes (´ Command Window),
• deux fenetres contenant un onglet de visualisation de l’espace des variables (ˆ Workspace), un onglet de visualisation des fichiers du repertoire de travail (´ Current Directory) et un onglet de visualisation de l’historique des commandes (Command History).
• une fenetre d’ˆ edition avec un onglet permettant de visualiser le contenu de fichiers (´ Editor) et un onglet permettant de visualiser le contenu des variables (Array Editor).
Les fonctions sont edit´ ees dans la fen´ etre de commandes et exˆ ecut´ ees en appuyant sur la touche´ Entrée. Le point virgule a la fin d’une fonction permet d’` eviter d’afficher les donn´ ees r´ esultats de la fonction´ execut´ ee ou de s´ eparer plusieurs fonctions sur une m´ eme ligne de commande. Plusieurs fonctions et com-ˆ mandes peuvent etre saisies dans un fichier qui sera enregistrˆ e avec l’extension´ .m. En editant le nom de ce´ fichier dans la fenetre de commande, l’ensemble des fonctions dˆ eclar´ ees dans ce fichier seront ex´ ecut´ ees.´ L’edition de ce fichier peut s’effectuer en s´ electionnant dans le menu´ File : New I M-file. Il est egalement´ possible d’y creer des fonctions en utilisant la commande´ function.
La fonction figure permet de gen´ erer une fen´ etre graphique permettant de visualiser les donnˆ ees´ (courbes, images, ...). la fonction close permet de fermer la fenetre active etˆ close all permet de fermer toutes les fenetres. Les fonctionsˆ title, xlabel, ylabel permettent respectivement d’afficher un titre a la figure, le nom de l’axe des abscisses et le nom de l’axe des ordonn` ees. La fonction´ subplot permet d’afficher plusieurs graphiques ou images au sein d’une meme figure.ˆ
Figure 1 – Le logiciel de calcul scientifique Matlab
La fonction clear efface les variables mises en memoire durant une session Matlab tandis que la fonc-´ tion clc efface le contenu de la fenetre de commande. La fonctionˆ pause permet de mettre en veille la fenetre de commandes de Matlab et les fonctionsˆ disp, display ou celldisp permettent l’affichage de textes ou de donnees dans la fen´ etre de commandes de Matlab.ˆ
Chaque variable declar´ ee dans Matlab est stock´ ee dans l’espace des variables´ a partir duquel il est` possible de consulter la taille et le type de la variable ainsi que d’editer son contenu par un double-click sur´ le nom de la variable. Les variables Matlab sont des objets de type structure ou des tableaux a` n dimensions. Ainsi, un scalaire est un tableau de taille 1×1; un vecteur est un tableau a 1 dimension de taille 1` ×n; une matrice est un tableau a 2 dimensions de taille` m×n... Il est ensuite possible d’acceder facilement au´ tableau, a un` el´ ement du tableau,´ a une ou plusieurs dimensions particuli` eres du tableau.`
Une image en noir et blanc est donc un tableau a 2 dimensions. Si` I est la variable contenant les donnees´ d’une image a niveaux de gris, l’instruction` I(1,1) renvoie la valeur du pixel de coordonnees´ (1,1). L’instruction I(:,1) renvoie les valeurs des pixels de la premiere colonne et l’instruction` I(1,:) renvoie les valeurs des pixels de la premiere ligne...`
Pour creer le vecteur´ V = [1 2 3 4] par exemple, il faut saisir l’instruction V=[1 2 3 4]. Pour creer la´ matrice M par exemple, il faut saisir l’instruction M=[1 2; 3 4]...
Certaines operations arithm´ etiques sur les tableaux peuvent´ etre effectuˆ es de deux mani´ eres :`
• de maniere matricielle avec les op` erateurs :´ *, / ou ^,
• el´ ements par´ el´ ement avec les op´ erateurs :´ .*, ./ ou .^.
1.2 Lecture, affichage et sauvegarde d’une image
Le chargement en memoire d’une image se fait avec la fonction´ imread. Par exemple, la fonction suivante permet de lire une image et de placer son contenu dans une variable de type matrice :
I = imread(’’);
Cette variable est alors visible dans le Workspace (espace des variables) de Matlab. La fonction whos permet d’afficher toutes les informations relatives aux variables en memoire et la fonction´ imfinfo affiche les informations relatives a un fichier image.`
L’affichage de l’image (ou de la variable) est realis´ e par la fonction´ imshow. Ainsi les fonctions suivantes ouvrent une nouvelle fenetre pour y afficher l’imageˆ I. figure; imshow(I);
1) Afficher l’image ’’ et donner les caracteristiques de cette image.´ Etudier les options de´ la fonction imshow
Les fonctions imwrite et print permettent la sauvegarde, respectivement, des images et des figures sous differents formats (tif, jpg, bmp, pcx, png, gif, emf, eps, ...).´
2) Enregistrer l’image ’’ sous les formats suivants : JPEG, BMP, PNG, GIF et le format TIFF sans compression. Ouvrir et afficher ensuite chacune de ces images, observer leurs differences et´ comparer les avec l’image d’origine. Mesurer ces differences avec l’image d’origine en calculant l’erreur´ quadratique moyenne.
3) Enregistrer l’image ’’ au format JPEG avec differents niveaux de compression (mettre´ le parametre` ’Quality’ a 0, 25, 50, 75 et 100). Ouvrir et afficher ensuite chacune de ces images, observer` leurs differences en taille et en qualit´ e et comparer les avec l’image d’origine. Mesurer ces diff´ erences avec´ l’image d’origine en calculant l’erreur quadratique moyenne.
1.3 Acquisition d’une image
Le materiel d’acquisition est une simple WebCam pos´ ee sur un portique et reli´ ee au PC par le port USB.´
Un pilote Windows specifique permet de communiquer entre le PC et la Webcam.´
La fonction imaqhwinfo permet l’obtention d’informations sur le materiel et les pilotes install´ es.´
4) En utilisant cette fonction, determiner les caract´ eristiques mat´ eriel et logiciel du syst´ eme d’acquisi-` tion installe.´
L’acquisition d’une image sous Matlab passe par la creation d’un objet d’entr´ ee vid´ eo en utilisant la´ fonction videoinput. Cette fonction affiche egalement les principales propri´ et´ es de l’objet d’entr´ ee vid´ eo´ creé. Un objet d’entr´ ee vid´ eo est un objet de type structure sur laquelle il est possible´ de regler plusieurs´ propriet´ es :´
• les parametres li` es au p´ eriph´ erique comme :´
– le format de l’image,
– l’espace de codage de l’image (RGB, YCbCr, niveaux de gris, ...)...
• Les parametres li` es´ a l’acquisition comme :`
![](/images/remos_downloads/detail/41/CoursMatlab-id4149.4149.pdf-000.jpg)
– la luminosite (Brightness),´
– le contraste (Contrast),
– le temps d’exposition (Exposure),
– la correction gamma (Gamma),
– la nettete (Sharpness)...´
La fonction propinfo (ou les fonctions get et set) ainsi que la fonction inspect permettent d’acceder´ et de connaˆ?tre les caracteristiques d´ etaill´ ees de chaque propri´ et´ e. Une propri´ et´ e peut´ egalement´ etre unˆ objet de type structure avec ses propres propriet´ es. L’acc´ es` a cet objet s’adresse de la fac¸on suivante :` nom.propriete. Attention, certaines propriet´ es ne sont accessibles qu’en lecture seule selon qu’une acqui-´ sition est en cours ou non.
5) Donner les differents formats d’images possible de la WebCam. Attention, cette propri´ et´ e est toujours´ en lecture seule des que l’objet d’entr` ee vid´ eo est cr´ eé. C’est pourquoi il faut la changer au moment de la´ creation avec la fonction´ videoinput.
6) Associer un objet d’entree vid´ eo´ vid au periph´ erique mat´ eriel correspondant´ a la WebCam en trans-` mettant le numero d’identification de ce p´ eriph´ erique avec un format d’image 1280´ ×960. A l’aide de la fonction inspect, acceder aux diff´ erentes propri´ et´ es de la variable´ vid et modifier l’espace de representation´ de la couleur de telle sorte que les images puissent etre acquises dans l’espace RGB. Cette propriˆ et´ e peut´ egalement´ etre modifiˆ ee´ a l’aide de l’instruction :` set(vid,’ReturnedColorSpace’,’rgb’);
La fonction preview permet de creer une fen´ etre d’aperc¸u afin de visualiser la scˆ ene observ` ee et la´ fonction closepreview permet de fermer cette fenetre. C’est ainsi qu’il est possible de rˆ egler certain´ parametre d’acquisition.`
7) Orienter la camera sur l’objet´ a observer et visualiser l’objet d’entr` ee vid´ eo´ vid a l’aide de la fonction` prec´ edente. Effectuer la mise au point de l’objectif de la WebCam.´
8) Acceder´ a la propri` et´ e de source vid´ eo´ vid.Source (la fonction getselectedsource peut egalement´ etre utilisˆ ee) et relever ses propri´ et´ es de luminosit´ e, de contraste, de temps d’exposition, de correction´ gamma, de teinte, de saturation et de nettete´ a l’aide de la fonction` propinfo ainsi que les valeurs minimales et maximales de reglage. Ajuster ces param´ etres` a l’aide de la fonction` set qui permet de changer les propriet´ es d’un objet ou de fac¸on interactive gr´ aceˆ a la fonction` inspect.
L’acquisition d’UNE seule image se fait avec la fonction getsnapshot.
9) Utiliser cette fonction pour realiser l’acquisition de l’image et afficher cette image dans une figure.´ Enregistrer cette image au format TIFF.
10) Changer l’espace de representation RGB en un espace de luminosit´ e et faire l’acquisition d’une´ nouvelle image sans modifier les reglages pr´ ec´ edent et sans d´ eplacer l’objet observ´ e. Enregistrer cette image´ au format TIFF.
11) Faire une nouvelle acquisition en niveau de gris avec un format 320×240 sans modifier les reglages´ prec´ edent et sans d´ eplacer l’objet observ´ e. Enregistrer cette image au format TIFF.´
1.4 Types des images en memoire´
Matlab supporte 4 formats d’images :
• les images binaires,
• les images d’intensites (´ a niveaux de gris),`
• les images couleur RGB,
• les images couleur indexees.´
Il est possible de changer de format en utilisant les fonctions suivantes :
• ind2gray : indexe´ ? intensite,´
• ind2rgb : indexe´ ? RGB,
• rgb2ind : RGB ? indexe,´
• rgb2gray : RGB ? intensite,´
• im2bw : intensite, index´ e, RGB´ ? binaire : c’est l’operateur de binarisation. Une image binaire peut´ etreˆ egalement obtenue en utilisant des op´ erateurs de comparaison et des op´ erateurs logiques. Par´ exemple, les instructions (I==seuil) ou ((I>=seuil bas) & (I<seuil haut)) permettent d’obtenir des images binaires par comparaison des niveaux des pixels d’une image I a des valeurs de` seuils.
Le passage d’une image couleur a une image d’intensit` e correspond´ a la transformation des composantes` R, G, B en la composante Y des systemes de transmissions YIQ et YUV qui s` eparent l’information de´ luminance et de chrominance.
12) Ouvrir l’image couleur acquise et enregistree pr´ ec´ edemment et la convertir en une image d’intensit´ e.´ Comparer cette image avec celle prec´ edemment acquise directement en niveaux de gris en calculant l’erreur´ quadratique moyenne entre ces deux images.
13) Ouvrir l’image couleur acquise et enregistree pr´ ec´ edemment et extraire et afficher en niveaux de´ gris puis en couleur les images correspondant aux composantes R, G et B. Que peut-on observer?
Les valeurs des pixels de ces images peuvent etre de diffˆ erents types :´
• logique (0 ou 1 pour les images binaires),
• entier non signe cod´ e sur 8 bits (entre 0 et 255),´
• entier non signe cod´ e sur 16 bits (entre 0 et 65535),´
• reel (entre 0 et 1).´
Il est possible de changer le type des variables en utilisant les fonctions suivantes :
• im2double : codage d’images en type reel,´
• im2uint8 : codage d’images en type entier non signe sur 8 bits,´
• im2uint16 : codage d’images en type entier non signe sur 16 bits,´
• double conversion de donnees en type r´ eel,´
• uint8 conversion de donnees en type non sign´ e sur 8 bits,´
![](/images/remos_downloads/detail/41/CoursMatlab-id4149.4149.pdf-001.jpg)
• uint16 conversion de donnees en type non sign´ e sur 16 bits.´
Les images binaires sont codes en entier logique ou en r´ eel logique et leurs pixels ont des valeurs´ uniquement egales´ a 0 ou` a 1. L’affichage d’une image peut se faire, soit en r` eel et les valeurs des pixels sont´ alors comprises entre 0.0 et 1.0, soit en entier et les valeurs des pixels sont alors comprises, par exemple, entre 0 et 255 pour des entiers non signes cod´ es sur 8 bits.´
14) Ouvrir l’image monochrome acquise et enregistree pr´ ec´ edemment et la convertir en une image´ de type double en utilisant successivement les fonctions double et im2double. Expliquer les differences´ observees.´
1.5 Manipulation des images
Certaines fonctions ou certains outils de Matlab permettent des manipulations interactive sur une image contenue dans une figure ou non :
• imageinfo : retourne les information de l’image dans la figure ou d’un fichier image,
• zoom : zoom sur une zone de l’image de la figure,
• imcrop : selectionne une zone de l’image,´
• improfile : affiche le profil d’une ligne selectionn´ ee,´
• impixel : retourne les valeurs des pixels selectionn´ es,´
• impixelinfo : affiche la position et les valeurs d’un pixel pointe avec la souris,´
• impixelregion : affiche les valeurs des pixels dans une region s´ electionn´ ee avec la souris,´
• imdistline : affiche la distance entre deux pixels selectionn´ es,´
• imdisplayrange : affiche l’intervalle des valeurs des pixels de l’image,
• imcontrast : reajuste une image,´
• imtool : outil qui utilise les outils prec´ edents.´
D’autres fonctions permettent des operations g´ eom´ etriques sur l’image :´ • imresize : re-´ echantillonnage de l’image (homoth´ etie),´
• imrotate : rotation de l’image.
15) Tester les outils imtool, impixelinfo et imdisplayrange sur l’image monochrome acquise et
enregistree pr´ ec´ edemment.´
16) Ouvrir l’image monochrome acquise et enregistree pr´ ec´ edemment et appliquer une rotation de 45 ? .´ Quelle est la taille de l’image ainsi obtenue?
17) Ouvrir l’image monochrome acquise et enregistree pr´ ec´ edemment et diviser sa taille par quatre en´ utilisant la fonction imresize. Comparer cette image avec celle acquise directement a la taille 320` ×240 en calculant l’erreur quadratique moyenne.
2 – Amelioration et restauration d’images´
1 Amelioration d’images´
La fonction imhist permet le calcul et l’affichage de l’histogramme d’une image. En exploitant cet histogramme plusieurs operations sont possibles en utilisant les fonctions suivantes :´
• imadjust : recadrage de la dynamique selon une correction gamma,
• histeq : egalisation et sp´ ecification d’histogrammes,´ • adapthisteq : egalisation adaptative d’histogrammes,´
• im2bw : binarisation d’une image.
1) Executer et tester la d´ emo´ imadjdemo qui utilise principalement les fonctions imadjust et histeq.
2) Acquerir une image en niveau de gris de taille 1280´ × 960 avec un maximum de luminosite, un´ minimum de correction gamma et de contraste et visualiser son histogramme. Que peut-on constater? Apres` avoir enregistre cette image, d´ eterminer les valeurs de recadrage et r´ ealiser le recadrage dynamique en´ specifiant´ egalement la valeur de gamma choisie. Quelle est la LUT correspondant´ a cette op` eration?´
3) Determiner les valeurs de recadrage en utilisant la fonction´ stretchlim d’abord, puis les fonctions min et max ensuite. Realiser respectivement les deux recadrages dynamiques correspondant.´
4) Acquerir´ a nouveau une image en niveau de gris de taille 1280` ×960 dans des conditions correctes et realiser l’´ egalisation d’histogramme. Observer et commenter les diff´ erences avec le recadrage dynamique.´ Visualiser l’histogramme cumule de cette image ayant servi´ a l’` egalisation. R´ ealiser une´ egalisation adap-´ tative et comparer avec le resultat pr´ ec´ edent.´
5) Acquerir une image de taille 1280´ ×960 en reglant correctement la cam´ era et seuiller cette image´ apres avoir d` etermin´ e le seuil´ a appliquer en visualisant son histogramme. Effectuer de la` meme fac¸on leˆ seuillage mais , tout d’abord sans fixer de seuil, puis en calculant automatiquement le seuil avec la fonction graythresh. Quelle est la LUT correspondant a cette op` eration? Quelles sont les diff´ erence entre les´ methodes pr´ ec´ edentes?´
2 Restauration d’images
La fonction de filtrage lineaire propre aux images propos´ e par Matlab est la fonction´ imfilter. Cette operateur correspond´ a une convolution r` ealisable´ egalement avec les fonctions´ conv2 ou filter2 mais qui est specifique aux images num´ eriques et traite en particulier les bords de l’image. Le noyau du filtre est´ une matrice de taille quelconque definie par l’utilisateur ou accessibles par la fonction´ fspecial.
Des filtrages non-lineaire peuvent´ etre rˆ ealis´ es avec la fonction´ nlfilter ou ordfilt2.
6) Executer et tester la d´ emo´ nrfiltdemo qui utilise principalement ces fonctions .
2.1 Filtre passe-bas
7) Acquerir une image en niveau de gris de taille 1280´ ×960. A partir d’un filtre moyenneur, effectuer le lissage de cette image en utilisant des filtres de tailles 3×3, 5×5 puis 7×7 afin d’etudier l’influence´ de la taille du noyau du filtre. Comparer les resultats obtenus entre eux et avec ceux obtenus en utilisant´ un filtre gaussien.
8) Appliquer deux fois un filtre moyenneur de taille 3×3 sur une images acquise en niveau de gris et comparer aux resultats pr´ ec´ edents. Quel est le filtre´ equivalent´ a ces deux op` erations? Valider ce filtre en´ comparant le resultat du filtrage correspondant avec celui d´ etermin´ e pr´ ec´ edemment.´
La fonction medfilt2 (ou plus gen´ eralement´ ordfilt2) permet de realiser le filtrage par un filtre´ median.´
9) Realiser les m´ emes filtrages que prˆ ec´ edemment en faisant varier la taille du filtre mais en utilisant le´ filtre median et comparer les r´ esultats.´
La fonction imnoise permet d’ajouter du bruit a une image.`
10) Appliquer un bruit de type ”poivre et sel” sur une image acquise en niveau de gris et appliquer un filtre moyenneur de taille 3×3 puis un filtre median de meme taille pour comparerˆ a nouveau les r` esultats´ obtenus.
![](/images/remos_downloads/detail/41/CoursMatlab-id4149.4149.pdf-003.jpg)
11) Appliquer un bruit uniforme sur une image acquise en niveau de gris et appliquer un filtre moyenneur de taille 3×3 puis un filtre median de meme taille pour comparerˆ a nouveau les r` esultats obtenus.´
12) Ecrire une fonction´ imadapt permettant le filtrage adaptatif de l’image et tester cette fonction sur les deux types de bruit prec´ edent. Discuter des r´ esultats obtenus et comparer les temps de traitement. Comparer´ les resultats obtenus avec ceux obtenus en utilisant la fonction´ wiener2.
2.2 Filtre passe-haut
2.2.1 Utilisation de la deriv´ ee premi´ ere`
13) Acquerir une image en niveau de gris de taille 1280´ ×960 et filtrer cette image en utilisant un filtre de Prewitt horizontal. Comparer les resultats obtenus avec les fonctions´ imfilter, filter2 et conv2.
14) Filtrer l’image prec´ edente en utilisant le filtre de Prewitt horizontal oppos´ e. Comparer les r´ esultats´ obtenus avec les prec´ edents en utilisant les fonctions´ imfilter, filter2 et conv2.
15) Utiliser des orientations supplementaires afin d’´ etudier leur effet sur le filtrage. Pour cela on pourra´ utiliser l’operateur de transposition ”´ 0 ” ainsi que les fonctions de rotation fliplr, flipud et rot90.
16) Fusionner les resultats pr´ ec´ edents pour obtenir une image filtr´ ee unique.´
2.2.2 Utilisation de la deriv´ ee seconde´
17) Utiliser un filtre Laplacien 4-voisins puis 8-voisins pour effectuer le filtrage passe-haut et comparer les resultats avec ceux obtenus pr´ ec´ edemment. Comparer les r´ esultats obtenus avec les fonctions´ imfilter, filter2 et conv2.
18) Realiser la m´ eme opˆ eration en utilisant le laplacien de la fonction´ fspecial. Que peut-on remarquer?
2.2.3 Vers la detection de contours...´
La fonction edge permet d’appliquer un filtrage passe-haut en utilisant soit la deriv´ ee premi´ ere dans` differentes directions, soit la d´ eriv´ ee seconde. Cette fonction exploite ensuite le r´ esultat obtenu en fixant un´ seuil aux maximums locaux de la deriv´ ee premi´ ere ou aux passage par z` ero de la d´ eriv´ ee seconde.´
19) Executer et tester la d´ emo´ edgedemo qui utilise principalement la fonction edge.
2.2.4 Rehaussement de contraste´
Le filtre rehausseur est defini comme le filtre Laplacien mais le coefficient du centre du´ noyau est egale´ a 5 pour un Laplacien 4-voisins (ou 9 pour un Laplacien 8-voisins).`
20) Acquerir une image´ a niveau de gris avec une mauvaise nettet` e et´ etudier l’effet de ce filtre sur´ cette image. Realiser la m´ eme opˆ eration en utilisant le laplacien de la fonction´ fspecial. Que peut on remarquer?
2.3 Utilisation de la transformee de Fourier´
La fonction fft2 permet de calculer la transformee de Fourier d’une image et la fonction´ ifft2 la transformee inverse. La fonction´ fftshift permet de centrer une transformee de Fourier sur la fondamentale´ (frequence spatile nulle).´
21) Calculer la transformee de Fourier centr´ ee d’une image acquise en niveau de gris. Afficher le module´ ou la partie reelle de cette transform´ ee soit dans une image, soit dans un graphique (fonction´ surf, image, imagesc, imshow, ...).
Afin de realiser un filtrage en utilisant les transform´ ees de Fourier, on remplacera les valeurs corres-´ pondant aux frequences´ a filtrer par des z` eros (filtre id´ eal). On r´ ealisera ensuite la transform´ ee inverse en´ faisant attention d’en prendre son module ou sa partie reelle.´
22) Realiser le filtrage passe-bas, passe-haut puis passe-bande´ d’une image acquise en niveau de gris en utilisant la transformee de Fourier. Proposer des fr´ equences de coupures ad´ equates. Comparer les r´ esultats´ a ceux obtenus avec des noyaux de convolution.`
23) Executer et tester la d´ emo´ firdemo qui utilise le principe du filtrage frequentiel ainsi que la d´ emo´ dctdemo qui utilise la transformee en cosinus discr´ ete pour compresser les images.`
3 – Morphologie mathematique´
1 Acquisition des images et pre-traitement´
1) Ouvrir ou acquerir une image couleur de taille 1280´ ×960. Transformer cette image en image monochrome et enregistrer cette image.
2) Binariser l’image acquise prec´ edemment de telle sorte´ a obtenir des objets en blanc et un fond en` noir. Si plusieurs binarisations sont necessaires, utiliser les op´ erateurs logiques (fonctions´ imcomplement, or, xor et and) pour recomposer l’image.
2 Erosion et dilatation´
Les fonctions imerode et imdilate permettent respectivement de realiser des op´ erations d’´ erosion et´ de dilatation sur des images a niveaux de gris` a partir d’un` el´ ement structurant. Cet´ el´ ement structurant peut´ etre dˆ efini soit par une matrice de 0 et de 1, soit en utilisant la fonction´ strel qui permet de configurer des el´ ements structurants´ el´ ementaires.´
2.1 Erosion´
3) Appliquer une erosion sur l’image binaire en utilisant comme´ el´ ement structurant un carr´ e de taille´ 3×3 pixels. Commenter les resultats.´
4) Appliquer une erosion sur l’image binaire en utilisant comme´ el´ ement structurant un carr´ e de taille´ 5×5 pixels. Commenter et comparer les resultats.´
5) Appliquer deux erosions cons´ ecutivement sur l’image binaire en utilisant comme´ el´ ement structurant´ un carre de taille 3´ ×3 pixels. Commenter et comparer les resultats.´
6) Appliquer une erosion sur l’image binaire en utilisant comme´ el´ ement structurant un disque de taille´ 5×5 pixels. Commenter et comparer les resultats.´
2.2 Dilatation
7) Appliquer une dilatation sur l’image binaire en utilisant comme el´ ement structurant un carr´ e de taille´ 3×3 pixels. Commenter les resultats.´
8) Appliquer une dilatation sur l’image binaire en utilisant comme el´ ement structurant un carr´ e de taille´ 5×5 pixels. Commenter et comparer les resultats.´
9) Appliquer deux dilatations consecutivement sur l’image binaire en utilisant comme´ el´ ement structu-´ rant un carre de taille 3´ ×3 pixels. Commenter et comparer les resultats.´
10) Appliquer une dilatation sur l’image binaire en utilisant comme el´ ement structurant un disque de´ taille 5×5 pixels. Commenter et comparer les resultats.´
3 Ouverture et fermeture
Une ouverture est une erosion suivie d’une dilatation et une fermeture est une dilatation suivie d’une´
erosion.´
3.1 Ouverture
11) En utilisant les fonctions definies pr´ ec´ edemment, r´ ealiser une ouverture sur l’image binaris´ ee. Com-´ parer et commenter les resultats. R´ ealiser la m´ eme opˆ eration avec la fonction´ imopen. Que se passe-t-il lorsque cette operation est r´ ep´ et´ ee ou lorsque la taille ou la forme de l’´ el´ ement structurant change?´
3.2 Fermeture
12) En utilisant les fonctions definies pr´ ec´ edemment, r´ ealiser une fermeture sur l’image binaris´ ee. Com-´ parer et commenter les resultats. R´ ealiser la m´ eme opˆ eration avec la fonction´ imclose. Que se passe-t-il lorsque cette operation est r´ ep´ et´ ee ou lorsque la taille ou la forme de l’´ el´ ement structurant change?´
3.3 Squelettisation
La fonction bwmorph permet plusieurs operations morphologiques sur des´ images binaires dont l’erosion,´ la dilatation, l’ouverture, la fermeture, l’amaincissement, ...
La squelettisation consiste a effectuer r` ecursivement l’op´ eration d’amincissement jusqu’´ a ce que l’image` ainsi creée ne change plus.´
13) Appliquer et observer l’operation de squelettisation sur l’image pr´ ec´ edente correctement recons-´ truite en utilisant la fonction bwmorph.
4 Autres operations sur images binaires´
La fonction imclearborder est une fonction morphologique qui permet de supprimer des regions qui´ sont au contact des bords de l’image binaire. La fonction bwareaopen permet de supprimer des regions de´ trop petites tailles dans une image binaire. La fonction imfill est une fonction morphologique qui permet de combler les ”trous” dans les regions d’une image binaire.´
14) En utilisant ces trois fonctions, traiter l’image acquise et binarisee afin d’obtenir une image dans´ laquelle les formes correspondent au mieux aux objets de la scene r` eelle. Utiliser d’autres fonctions mor-´ phologiques si necessaire.´