Académique Documents
Professionnel Documents
Culture Documents
Cours-TP TI
Cours-TP TI
1 Acquisition dimages sous Matlab p. 3 2 Am elioration et restauration dimages p. 9 3 Morphologie math ematique p. 13
Vandenbroucke Nicolas
R11
` laide Lobjectif de ce TP est de prendre en main les outils de traitement dimages les plus classiques a ` des du logiciel Matlab. Matlab est un logiciel de calcul scientique permettant de d evelopper des solutions a probl` emes techniques. Il permet de r ealiser du calcul num erique et de tracer des graphiques pour visualiser et analyser les donn ees. Il dispose dun langage et dun environnement de programmation interactifs ainsi ` des boites a ` outils que doutils pour concevoir des interfaces utilisateur graphiques. Matlab est associ ea ` des fonctions sp ` un domaine dapplication comme le appel e TOOLBOX permettant dacc eder a eciques a traitement dimages par exemple. Les TP de traitement dimages r ealis es avec Matlab n ecessitent ainsi la toolbox Image Acquisition tre list et la toolbox Image Processing. Les fonctions de cette derni` ere toolbox peuvent e 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 laide contextuelle en tapant la fonction help suivi du nom de la fonction ou utiliser laide en ligne en ouvrant lapplication Helpdesk (en tapant la fonction helpdesk, par exemple). Avant de parcourir directement le sujet, vous pouver d ecouvrir les d emonstrations associ ees au toolbox Image ` d Processing en tapant la fonction demos (ou directement le nom de la d emonstration a ecouvrir).
Prise en main
` prendre en main les toolbox Image Processing et Image AcquisiCe premier exercice est destin ea tion.
La fonction clear efface les variables mises en m emoire durant une session Matlab tandis que la fonction clc efface le contenu de la fen etre de commande. La fonction pause permet de mettre en veille la fen etre de commandes de Matlab et les fonctions disp, display ou celldisp permettent lafchage de textes ou de donn ees dans la fen etre de commandes de Matlab. ` partir duquel il est Chaque variable d eclar ee dans Matlab est stock ee dans lespace des variables a possible de consulter la taille et le type de la variable ainsi que d editer son contenu par un double-click sur ` n dimensions. le nom de la variable. Les variables Matlab sont des objets de type structure ou des tableaux a ` 1 dimension de taille 1 n ; Ainsi, un scalaire est un tableau de taille 1 1 ; un vecteur est un tableau a ` 2 dimensions de taille m n... Il est ensuite possible dacc une matrice est un tableau a eder facilement au ` un e l ` une ou plusieurs dimensions particuli` tableau, a ement du tableau, a eres du tableau. ` 2 dimensions. Si I est la variable contenant les donn Une image en noir et blanc est donc un tableau a ees ` niveaux de gris, linstruction I(1,1) renvoie la valeur du pixel de coordonn dune image a ees (1, 1). Linstruction I(:,1) renvoie les valeurs des pixels de la premi` ere colonne et linstruction I(1,:) renvoie les valeurs des pixels de la premi` ere ligne... Pour cr eer le vecteur V = [ 1 2 3 4 ] par exemple, il faut saisir linstruction V=[1 2 3 4]. Pour cr eer la 2 par exemple, il faut saisir linstruction M=[1 2; 3 4]... matrice M = 1 34 tre effectu Certaines op erations arithm etiques sur les tableaux peuvent e es de deux mani` eres : de mani` ere matricielle avec les op erateurs : *, / ou ^, l l e ements par e ement avec les op erateurs : .*, ./ ou .^.
la luminosit e (Brightness), le contraste (Contrast), le temps dexposition (Exposure), la correction gamma (Gamma), la nettet e (Sharpness)... La fonction propinfo (ou les fonctions get et set) ainsi que la fonction inspect permettent dacc eder galement e tre un et de conna tre les caract eristiques d etaill ees de chaque propri et e. Une propri et e peut e ` cet objet sadresse de la fac objet de type structure avec ses propres propri et es. Lacc` es a on suivante : nom. propriete. Attention, certaines propri et es ne sont accessibles quen lecture seule selon quune acquisition est en cours ou non. 5) Donner les diff erents formats dimages possible de la WebCam. Attention, cette propri et e est toujours . Cest pourquoi il faut la changer au moment de la en lecture seule d` es que lobjet dentr ee vid eo est cr ee cr eation avec la fonction videoinput. ` la WebCam en trans6) Associer un objet dentr ee vid eo vid au p eriph erique mat eriel correspondant a mettant le num ero didentication de ce p eriph erique avec un format dimage 1280 960. A laide de la fonction inspect, acc eder aux diff erentes propri et es de la variable vid et modier lespace de repr esentation tre acquises dans lespace RGB. Cette propri de la couleur de telle sorte que les images puissent e et e peut galement e tre modi ` laide de linstruction : e ee a set(vid,ReturnedColorSpace,rgb);
La fonction preview permet de cr eer une fen etre daperc u an de visualiser la sc` ene observ ee et la fonction closepreview permet de fermer cette fen etre. Cest ainsi quil est possible de r egler certain param` etre dacquisition. ` observer et visualiser lobjet dentr ` laide de la fonction 7) Orienter la cam era sur lobjet a ee vid eo vid a pr ec edente. Effectuer la mise au point de lobjectif de la WebCam. ` la propri galement 8) Acc eder a et e de source vid eo vid .Source (la fonction getselectedsource peut e tre utilis e ee) et relever ses propri et es de luminosit e, de contraste, de temps dexposition, de correction ` laide de la fonction propinfo ainsi que les valeurs minimales gamma, de teinte, de saturation et de nettet ea ` laide de la fonction set qui permet de changer les et maximales de r eglage. Ajuster ces param` etres a ` la fonction inspect. propri et es dun objet ou de fac on interactive gr ace a Lacquisition dUNE seule image se fait avec la fonction getsnapshot. 9) Utiliser cette fonction pour r ealiser lacquisition de limage et afcher cette image dans une gure. Enregistrer cette image au format TIFF. 10) Changer lespace de repr esentation RGB en un espace de luminosit e et faire lacquisition dune nouvelle image sans modier les r eglages pr ec edent et sans d eplacer lobjet observ e. Enregistrer cette image au format TIFF. 11) Faire une nouvelle acquisition en niveau de gris avec un format 320 240 sans modier les r eglages pr ec edent et sans d eplacer lobjet observ e. Enregistrer cette image au format TIFF.
Am elioration dimages
La fonction imhist permet le calcul et lafchage de lhistogramme dune image. En exploitant cet histogramme plusieurs op erations sont possibles en utilisant les fonctions suivantes : imadjust : recadrage de la dynamique selon une correction gamma, galisation et sp histeq : e ecication dhistogrammes, galisation adaptative dhistogrammes, adapthisteq : e im2bw : binarisation dune image. 1) Ex ecuter et tester la d emo imadjdemo qui utilise principalement les fonctions imadjust et histeq. 2) Acqu erir une image en niveau de gris de taille 1280 960 avec un maximum de luminosit e, un minimum de correction gamma et de contraste et visualiser son histogramme. Que peut-on constater ? Apr` es avoir enregistr e cette image, d eterminer les valeurs de recadrage et r ealiser le recadrage dynamique en galement la valeur de gamma choisie. Quelle est la LUT correspondant a ` cette op sp eciant e eration ? 3) D eterminer les valeurs de recadrage en utilisant la fonction stretchlim dabord, puis les fonctions min et max ensuite. R ealiser respectivement les deux recadrages dynamiques correspondant. ` nouveau une image en niveau de gris de taille 1280 960 dans des conditions correctes et 4) Acqu erir a r ealiser l egalisation dhistogramme. Observer et commenter les diff erences avec le recadrage dynamique. ` l galisation adapVisualiser lhistogramme cumul e de cette image ayant servi a egalisation. R ealiser une e tative et comparer avec le r esultat pr ec edent. 5) Acqu erir une image de taille 1280 960 en r eglant correctement la cam era et seuiller cette image ` appliquer en visualisant son histogramme. Effectuer de la m apr` es avoir d etermin e le seuil a eme fac on le seuillage mais , tout dabord sans xer de seuil, puis en calculant automatiquement le seuil avec la fonction ` cette op graythresh. Quelle est la LUT correspondant a eration ? Quelles sont les diff erence entre les m ethodes pr ec edentes ?
Restauration dimages
La fonction de ltrage lin eaire propre aux images propos e par Matlab est la fonction imfilter. Cette ` une convolution r galement avec les fonctions conv2 ou filter2 mais op erateur correspond a ealisable e qui est sp ecique aux images num eriques et traite en particulier les bords de limage. Le noyau du ltre est une matrice de taille quelconque d enie par lutilisateur ou accessibles par la fonction fspecial. tre r Des ltrages non-lin eaire peuvent e ealis es avec la fonction nlfilter ou ordfilt2. 6) Ex ecuter et tester la d emo nrfiltdemo qui utilise principalement ces fonctions .
13) Acqu erir une image en niveau de gris de taille 1280 960 et ltrer cette image en utilisant un ltre de Prewitt horizontal. Comparer les r esultats obtenus avec les fonctions imfilter, filter2 et conv2. 14) Filtrer limage pr ec edente en utilisant le ltre de Prewitt horizontal oppos e. Comparer les r esultats obtenus avec les pr ec edents en utilisant les fonctions imfilter, filter2 et conv2. 15) Utiliser des orientations suppl ementaires an d etudier leur effet sur le ltrage. Pour cela on pourra utiliser lop erateur de transposition ainsi que les fonctions de rotation fliplr, flipud et rot90. 16) Fusionner les r esultats pr ec edents pour obtenir une image ltr ee unique.
10
2.2.2
17) Utiliser un ltre Laplacien 4-voisins puis 8-voisins pour effectuer le ltrage passe-haut et comparer les r esultats avec ceux obtenus pr ec edemment. Comparer les r esultats obtenus avec les fonctions imfilter, filter2 et conv2. 18) R ealiser la m eme op eration en utilisant le laplacien de la fonction fspecial. Que peut-on remarquer ? 2.2.3 Vers la d etection de contours...
La fonction edge permet dappliquer un ltrage passe-haut en utilisant soit la d eriv ee premi` ere dans diff erentes directions, soit la d eriv ee seconde. Cette fonction exploite ensuite le r esultat obtenu en xant un seuil aux maximums locaux de la d eriv ee premi` ere ou aux passage par z ero de la d eriv ee seconde. 19) Ex ecuter et tester la d emo edgedemo qui utilise principalement la fonction edge. 2.2.4 R ehaussement de contraste
gale Le ltre rehausseur est d eni comme le ltre Laplacien mais le coefcient du centre du noyau est e ` 5 pour un Laplacien 4-voisins (ou 9 pour un Laplacien 8-voisins). a ` niveau de gris avec une mauvaise nettet tudier leffet de ce ltre sur 20) Acqu erir une image a e et e cette image. R ealiser la m eme op eration en utilisant le laplacien de la fonction fspecial. Que peut on remarquer ?
11
1) Ouvrir ou acqu erir une image couleur de taille 1280 960. Transformer cette image en image monochrome et enregistrer cette image. ` obtenir des objets en blanc et un fond en 2) Binariser limage acquise pr ec edemment de telle sorte a noir. Si plusieurs binarisations sont n ecessaires, utiliser les op erateurs logiques (fonctions imcomplement, or, xor et and) pour recomposer limage.
Erosion et dilatation
Les fonctions imerode et imdilate permettent respectivement de r ealiser des op erations d erosion et ` niveaux de gris a ` partir dun e l l de dilatation sur des images a ement structurant. Cet e ement structurant peut tre d e eni soit par une matrice de 0 et de 1, soit en utilisant la fonction strel qui permet de congurer des l l e ements structurants e ementaires.
2.1 Erosion
rosion sur limage binaire en utilisant comme e l 3) Appliquer une e ement structurant un carr e de taille 3 3 pixels. Commenter les r esultats. rosion sur limage binaire en utilisant comme e l 4) Appliquer une e ement structurant un carr e de taille 5 5 pixels. Commenter et comparer les r esultats. rosions cons l 5) Appliquer deux e ecutivement sur limage binaire en utilisant comme e ement structurant un carr e de taille 3 3 pixels. Commenter et comparer les r esultats. rosion sur limage binaire en utilisant comme e l 6) Appliquer une e ement structurant un disque de taille 5 5 pixels. Commenter et comparer les r esultats.
2.2 Dilatation
l 7) Appliquer une dilatation sur limage binaire en utilisant comme e ement structurant un carr e de taille 3 3 pixels. Commenter les r esultats. l 8) Appliquer une dilatation sur limage binaire en utilisant comme e ement structurant un carr e de taille 5 5 pixels. Commenter et comparer les r esultats. l 9) Appliquer deux dilatations cons ecutivement sur limage binaire en utilisant comme e ement structurant un carr e de taille 3 3 pixels. Commenter et comparer les r esultats.
13
l 10) Appliquer une dilatation sur limage binaire en utilisant comme e ement structurant un disque de taille 5 5 pixels. Commenter et comparer les r esultats.
Ouverture et fermeture
rosion suivie dune dilatation et une fermeture est une dilatation suivie dune Une ouverture est une e rosion. e
3.1 Ouverture
11) En utilisant les fonctions d enies pr ec edemment, r ealiser une ouverture sur limage binaris ee. Comparer et commenter les r esultats. R ealiser la m eme op eration avec la fonction imopen. Que se passe-t-il lorsque cette op eration 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 d enies pr ec edemment, r ealiser une fermeture sur limage binaris ee. Comparer et commenter les r esultats. R ealiser la m eme op eration avec la fonction imclose. Que se passe-t-il lorsque cette op eration 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 op erations morphologiques sur des images binaires dont l erosion, la dilatation, louverture, la fermeture, lamaincissement, ... ` effectuer r La squelettisation consiste a ecursivement lop eration damincissement jusqu` a ce que limage e ne change plus. ainsi cr ee 13) Appliquer et observer lop eration de squelettisation sur limage pr ec edente correctement reconstruite en utilisant la fonction bwmorph.
La fonction imclearborder est une fonction morphologique qui permet de supprimer des r egions qui sont au contact des bords de limage binaire. La fonction bwareaopen permet de supprimer des r egions de trop petites tailles dans une image binaire. La fonction imfill est une fonction morphologique qui permet de combler les trous dans les r egions dune image binaire. 14) En utilisant ces trois fonctions, traiter limage acquise et binaris ee an dobtenir une image dans laquelle les formes correspondent au mieux aux objets de la sc` ene r eelle. Utiliser dautres fonctions morphologiques si n ecessaire.
14