Professional Documents
Culture Documents
Vandenbroucke Nicolas
R11
` Lobjectif de ce TP est de prendre en main les outils de traitement dimages les plus classiques a laide ` du logiciel Matlab. Matlab est un logiciel de calcul scientique permettant de d velopper des solutions a des e probl` mes techniques. Il permet de r aliser du calcul num rique et de tracer des graphiques pour visualiser e e e et analyser les donn es. Il dispose dun langage et dun environnement de programmation interactifs ainsi e ` que doutils pour concevoir des interfaces utilisateur graphiques. Matlab est associ a des boites a outils e` ` ` appel TOOLBOX permettant dacc der a des fonctions sp ciques a un domaine dapplication comme le e e e traitement dimages par exemple. Les TP de traitement dimages r alis s avec Matlab n cessitent ainsi la toolbox Image Acquisition e e e et la toolbox Image Processing. Les fonctions de cette derni` re toolbox peuvent etre list e en tapant la e e fonction help images dans l diteur de commande de Matlab. Pour obtenir un descriptif d taill des ces e e e 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 couvrir les d monstrations associ es au toolbox Image e e e ` e Processing en tapant la fonction demos (ou directement le nom de la d monstration a d couvrir). e
Prise en main
Ce premier exercice est destin a prendre en main les toolbox Image Processing et Image Acquisie` tion.
La fonction clear efface les variables mises en m moire durant une session Matlab tandis que la fonce tion clc efface le contenu de la fen tre de commande. La fonction pause permet de mettre en veille la e fen tre de commandes de Matlab et les fonctions disp, display ou celldisp permettent lafchage de e textes ou de donn es dans la fen tre de commandes de Matlab. e e ` Chaque variable d clar e dans Matlab est stock e dans lespace des variables a partir duquel il est e e e possible de consulter la taille et le type de la variable ainsi que d diter son contenu par un double-click sur e ` 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 dacc der facilement au e ` e ` tableau, a un el ment du tableau, a une ou plusieurs dimensions particuli` res du tableau. e ` Une image en noir et blanc est donc un tableau a 2 dimensions. Si I est la variable contenant les donn es e ` dune image a niveaux de gris, linstruction I(1,1) renvoie la valeur du pixel de coordonn es (1, 1). Linse truction I(:,1) renvoie les valeurs des pixels de la premi` re colonne et linstruction I(1,:) renvoie les e valeurs des pixels de la premi` re ligne... e Pour cr er le vecteur V = [ 1 2 3 4 ] par exemple, il faut saisir linstruction V=[1 2 3 4]. Pour cr er la e e matrice M = 1 2 par exemple, il faut saisir linstruction M=[1 2; 3 4]... 34 Certaines op rations arithm tiques sur les tableaux peuvent etre effectu s de deux mani` res : e e e e de mani` re matricielle avec les op rateurs : *, / ou ^, e e e e el ments par el ment avec les op rateurs : .*, ./ ou .^. e
la luminosit (Brightness), e le contraste (Contrast), le temps dexposition (Exposure), la correction gamma (Gamma), la nettet (Sharpness)... e La fonction propinfo (ou les fonctions get et set) ainsi que la fonction inspect permettent dacc der e et de connatre les caract ristiques d taill es de chaque propri t . Une propri t peut egalement etre un e e e ee ee objet de type structure avec ses propres propri t s. Lacc` s a cet objet sadresse de la facon suivante : ee e ` nom.propriete. Attention, certaines propri t s ne sont accessibles quen lecture seule selon quune acquiee sition est en cours ou non. 5) Donner les diff rents formats dimages possible de la WebCam. Attention, cette propri t est toujours e ee en lecture seule d` s que lobjet dentr e vid o est cr e. Cest pourquoi il faut la changer au moment de la e e e e cr ation avec la fonction videoinput. e ` 6) Associer un objet dentr e vid o vid au p riph rique mat riel correspondant a la WebCam en transe e e e e mettant le num ro didentication de ce p riph rique avec un format dimage 1280 960. A laide de la e e e fonction inspect, acc der aux diff rentes propri t s de la variable vid et modier lespace de repr sentation e e ee e de la couleur de telle sorte que les images puissent etre acquises dans lespace RGB. Cette propri t peut ee egalement etre modi e a laide de linstruction : e ` set(vid,ReturnedColorSpace,rgb);
La fonction preview permet de cr er une fen tre dapercu an de visualiser la sc` ne observ e et la e e e e fonction closepreview permet de fermer cette fen tre. Cest ainsi quil est possible de r gler certain e e param` tre dacquisition. e ` ` 7) Orienter la cam ra sur lobjet a observer et visualiser lobjet dentr e vid o vid a laide de la fonction e e e pr c dente. Effectuer la mise au point de lobjectif de la WebCam. e e ` 8) Acc der a la propri t de source vid o vid.Source (la fonction getselectedsource peut egalement e ee e etre utilis e) et relever ses propri t s de luminosit , de contraste, de temps dexposition, de correction e ee e gamma, de teinte, de saturation et de nettet a laide de la fonction propinfo ainsi que les valeurs minimales e` ` et maximales de r glage. Ajuster ces param` tres a laide de la fonction set qui permet de changer les e e propri t s dun objet ou de facon interactive gr ce a la fonction inspect. ee a ` Lacquisition dUNE seule image se fait avec la fonction getsnapshot. 9) Utiliser cette fonction pour r aliser lacquisition de limage et afcher cette image dans une gure. e Enregistrer cette image au format TIFF. 10) Changer lespace de repr sentation RGB en un espace de luminosit et faire lacquisition dune e e nouvelle image sans modier les r glages pr c dent et sans d placer lobjet observ . Enregistrer cette image e e e e e au format TIFF. 11) Faire une nouvelle acquisition en niveau de gris avec un format 320 240 sans modier les r glages e pr c dent et sans d placer lobjet observ . Enregistrer cette image au format TIFF. e e e e
Am lioration dimages e
La fonction imhist permet le calcul et lafchage de lhistogramme dune image. En exploitant cet histogramme plusieurs op rations sont possibles en utilisant les fonctions suivantes : e imadjust : recadrage de la dynamique selon une correction gamma, histeq : egalisation et sp cication dhistogrammes, e adapthisteq : egalisation adaptative dhistogrammes, im2bw : binarisation dune image. 1) Ex cuter et tester la d mo imadjdemo qui utilise principalement les fonctions imadjust et histeq. e e 2) Acqu rir une image en niveau de gris de taille 1280 960 avec un maximum de luminosit , un e e minimum de correction gamma et de contraste et visualiser son histogramme. Que peut-on constater ? Apr` s e avoir enregistr cette image, d terminer les valeurs de recadrage et r aliser le recadrage dynamique en e e e ` sp ciant egalement la valeur de gamma choisie. Quelle est la LUT correspondant a cette op ration ? e e 3) D terminer les valeurs de recadrage en utilisant la fonction stretchlim dabord, puis les fonctions e min et max ensuite. R aliser respectivement les deux recadrages dynamiques correspondant. e 4) Acqu rir a nouveau une image en niveau de gris de taille 1280 960 dans des conditions correctes et e ` r aliser l galisation dhistogramme. Observer et commenter les diff rences avec le recadrage dynamique. e e e ` e Visualiser lhistogramme cumul de cette image ayant servi a l galisation. R aliser une egalisation adape e tative et comparer avec le r sultat pr c dent. e e e 5) Acqu rir une image de taille 1280 960 en r glant correctement la cam ra et seuiller cette image e e e ` apr` s avoir d termin le seuil a appliquer en visualisant son histogramme. Effectuer de la m me facon le e e e e seuillage mais , tout dabord sans xer de seuil, puis en calculant automatiquement le seuil avec la fonction ` graythresh. Quelle est la LUT correspondant a cette op ration ? Quelles sont les diff rence entre les e e m thodes pr c dentes ? e e e
Restauration dimages
La fonction de ltrage lin aire propre aux images propos par Matlab est la fonction imfilter. Cette e e ` op rateur correspond a une convolution r alisable egalement avec les fonctions conv2 ou filter2 mais e e qui est sp cique aux images num riques et traite en particulier les bords de limage. Le noyau du ltre est e e une matrice de taille quelconque d nie par lutilisateur ou accessibles par la fonction fspecial. e Des ltrages non-lin aire peuvent etre r alis s avec la fonction nlfilter ou ordfilt2. e e e 6) Ex cuter et tester la d mo nrfiltdemo qui utilise principalement ces fonctions . e e
13) Acqu rir une image en niveau de gris de taille 1280 960 et ltrer cette image en utilisant un ltre e de Prewitt horizontal. Comparer les r sultats obtenus avec les fonctions imfilter, filter2 et conv2. e 14) Filtrer limage pr c dente en utilisant le ltre de Prewitt horizontal oppos . Comparer les r sultats e e e e obtenus avec les pr c dents en utilisant les fonctions imfilter, filter2 et conv2. e e 15) Utiliser des orientations suppl mentaires an d tudier leur effet sur le ltrage. Pour cela on pourra e e utiliser lop rateur de transposition ainsi que les fonctions de rotation fliplr, flipud et rot90. e 16) Fusionner les r sultats pr c dents pour obtenir une image ltr e unique. e e e e
10
2.2.2
17) Utiliser un ltre Laplacien 4-voisins puis 8-voisins pour effectuer le ltrage passe-haut et comparer les r sultats avec ceux obtenus pr c demment. Comparer les r sultats obtenus avec les fonctions imfilter, e e e e filter2 et conv2. 18) R aliser la m me op ration en utilisant le laplacien de la fonction fspecial. Que peut-on remare e e quer ? 2.2.3 Vers la d tection de contours... e
La fonction edge permet dappliquer un ltrage passe-haut en utilisant soit la d riv e premi` re dans e e e diff rentes directions, soit la d riv e seconde. Cette fonction exploite ensuite le r sultat obtenu en xant un e e e e seuil aux maximums locaux de la d riv e premi` re ou aux passage par z ro de la d riv e seconde. e e e e e e 19) Ex cuter et tester la d mo edgedemo qui utilise principalement la fonction edge. e e 2.2.4 R haussement de contraste e
Le ltre rehausseur est d ni comme le ltre Laplacien mais le coefcient du centre du noyau est egale e ` a 5 pour un Laplacien 4-voisins (ou 9 pour un Laplacien 8-voisins). ` 20) Acqu rir une image a niveau de gris avec une mauvaise nettet et etudier leffet de ce ltre sur e e cette image. R aliser la m me op ration en utilisant le laplacien de la fonction fspecial. Que peut on e e e remarquer ?
11
1) Ouvrir ou acqu rir une image couleur de taille 1280 960. Transformer cette image en image monoe chrome et enregistrer cette image. ` 2) Binariser limage acquise pr c demment de telle sorte a obtenir des objets en blanc et un fond en e e noir. Si plusieurs binarisations sont n cessaires, utiliser les op rateurs logiques (fonctions imcomplement, e e or, xor et and) pour recomposer limage.
Erosion et dilatation
Les fonctions imerode et imdilate permettent respectivement de r aliser des op rations d rosion et e e e ` ` e e de dilatation sur des images a niveaux de gris a partir dun el ment structurant. Cet el ment structurant peut etre d ni soit par une matrice de 0 et de 1, soit en utilisant la fonction strel qui permet de congurer des e e e el ments structurants el mentaires.
2.1 Erosion
e 3) Appliquer une erosion sur limage binaire en utilisant comme el ment structurant un carr de taille e 3 3 pixels. Commenter les r sultats. e e 4) Appliquer une erosion sur limage binaire en utilisant comme el ment structurant un carr de taille e 5 5 pixels. Commenter et comparer les r sultats. e e 5) Appliquer deux erosions cons cutivement sur limage binaire en utilisant comme el ment structurant e un carr de taille 3 3 pixels. Commenter et comparer les r sultats. e e e 6) Appliquer une erosion sur limage binaire en utilisant comme el ment structurant un disque de taille 5 5 pixels. Commenter et comparer les r sultats. e
2.2 Dilatation
e 7) Appliquer une dilatation sur limage binaire en utilisant comme el ment structurant un carr de taille e 3 3 pixels. Commenter les r sultats. e e 8) Appliquer une dilatation sur limage binaire en utilisant comme el ment structurant un carr de taille e 5 5 pixels. Commenter et comparer les r sultats. e e 9) Appliquer deux dilatations cons cutivement sur limage binaire en utilisant comme el ment structue rant un carr de taille 3 3 pixels. Commenter et comparer les r sultats. e e
13
e 10) Appliquer une dilatation sur limage binaire en utilisant comme el ment structurant un disque de taille 5 5 pixels. Commenter et comparer les r sultats. e
Ouverture et fermeture
Une ouverture est une erosion suivie dune dilatation et une fermeture est une dilatation suivie dune erosion.
3.1 Ouverture
11) En utilisant les fonctions d nies pr c demment, r aliser une ouverture sur limage binaris e. Come e e e e parer et commenter les r sultats. R aliser la m me op ration avec la fonction imopen. Que se passe-t-il e e e e lorsque cette op ration est r p t e ou lorsque la taille ou la forme de l l ment structurant change ? e e ee ee
3.2 Fermeture
12) En utilisant les fonctions d nies pr c demment, r aliser une fermeture sur limage binaris e. Come e e e e parer et commenter les r sultats. R aliser la m me op ration avec la fonction imclose. Que se passe-t-il e e e e lorsque cette op ration est r p t e ou lorsque la taille ou la forme de l l ment structurant change ? e e ee ee
3.3 Squelettisation
La fonction bwmorph permet plusieurs op rations morphologiques sur des images binaires dont l rosion, e e la dilatation, louverture, la fermeture, lamaincissement, ... ` La squelettisation consiste a effectuer r cursivement lop ration damincissement jusqu` ce que limage e e a ainsi cr ee ne change plus. e 13) Appliquer et observer lop ration de squelettisation sur limage pr c dente correctement reconse e e truite en utilisant la fonction bwmorph.
La fonction imclearborder est une fonction morphologique qui permet de supprimer des r gions qui e sont au contact des bords de limage binaire. La fonction bwareaopen permet de supprimer des r gions de e trop petites tailles dans une image binaire. La fonction imfill est une fonction morphologique qui permet de combler les trous dans les r gions dune image binaire. e 14) En utilisant ces trois fonctions, traiter limage acquise et binaris e an dobtenir une image dans e laquelle les formes correspondent au mieux aux objets de la sc` ne r elle. Utiliser dautres fonctions more e phologiques si n cessaire. e
14