Professional Documents
Culture Documents
C. Roudet B. Billiot
1
M1 INFO Module : TI
Programme et objectifs
Lobjectif de ces TP est de vous faire implmenter sous Matlab diffrents outils de traitement et de compression dimages. Le premier TP consistera intgrer dans une interface GUI Matlab, plusieurs traitements en temps rel. Lacquisition dimages se fera grce des webcams. Linterface GUI Matlab contiendra : - une fentre dacquisition, - une fentre de traitement, - et un ensemble de boutons (associs des fonctions) pour lancer les traitements. Pour les TP suivants (2, 3 et 4), vous appliquerez les traitements sur des images fixes, sans utilisation dinterface GUI Matlab.
Programme des TP Matlab : TP 1 : Histogramme, binarisation et LUT avec GUI Matlab TP 2 : Etirement et galisation dhistogrammes, filtrage de bruit TP 3 : Dtection de contours et segmentation dimages TP 4 : Compression et qualit de reconstruction TP 5 : TP not d1h (exercice applicatif sur une des notions vues)
M1 INFO Module : TI
- dans longlet Create new GUI choisir un des 4 modes (par dfaut on prendra Blank GUI ) - on obtient une fentre avec sur la gauche les diffrents objets (push button, radio button, slider etc) que lon peut placer sur linterface graphique.
- Il suffit de choisir un objet et de le dessiner sur linterface graphique : 1) choisir Axes et dessiner les fentres dacquisition et de traitement (comme sur la figure de la page suivante).
M1 INFO Module : TI
2) Ajouter 3 boutons (un pour raliser linversion dimage, un pour stopper le traitement en cours et un dernier pour sortir de linterface).
- Pour accder aux paramtres des boutons, on double clique dessus et une fentre Property Inspector souvre alors. Les paramtres modifier pour les boutons sont : - String : le nom qui apparat sur le bouton (sur linterface) - Tag : cela modifie le nom de la fonction dans MATLAB associe au bouton Important : bien sassurer que le nom avant _Callback (correspondant la fonction associe au bouton dans Matlab) est bien le mme que le Tag . - Ds que lon sauvegarde le fichier GUIDE , MATLAB gnre automatiquement un fichier .m portant le mme nom que le fichier GUIDE . La partie surligne (dans le code en page suivante) est la partie cre partir dun bouton de tag pushbutton1. Il suffit de rajouter du code la suite de cette partie pour ajouter des actions associes au bouton.
M1 INFO Module : TI
Le code comment que vous devrez ajouter dans la fonction associe au bouton Inversion (pour raliser linversion vido) est disponible ici : http://ufrsciencestech.u-bourgogne.fr/~roudet/enseignement/TI/inversion.m
M1 INFO Module : TI
oui
Fermer linterface
Dmarrage de la vido non while 1 oui Rafrachissement de limage Effacement du contenu de la fentre de traitement Retour dans la boucle while du traitement
Appui sur le bouton stop ? oui - Arrt vido - Effacement mmoire - Sortie boucle while
non
Mise en niveaux de gris de limage camera Calcul de limage inverse Affichage des images dans les fentres
Dans un premier temps faire fonctionner le programme cr en cliquant sur le bouton Inversion , puis rajouter le code pour faire fonctionner les boutons Stop et Sortie et Fin . Vous vous apercevrez quil faudra chaque fois appuyer sur le bouton Stop avant de lancer un nouveau traitement (pour dabord terminer le traitement en cours). 6
M1 INFO Module : TI
Rsultat :
Exemple 2 : retrouver en plus grand en Annexe 2
M1 INFO Module : TI
2) Le seuil sera dtermin automatiquement par la fonction Matlab graythresh (mthode d'Otsu dtaille en Annexe 1). Remarque : on pourra afficher dans la fentre de traitement la valeur du seuil automatique. Visualisez maintenant lhistogramme de limage binarise, que remarquez-vous ? III) LUT Sous Matlab, il est possible de crer ses propres LUT et de les appliquer laide de la fonction colormap. Les valeurs doivent cependant tre normalises sur lintervalle [0, 1]. Prenons, par exemple, le cas simple dune matrice M de taille 3x3 : 4 4 1 1 2 2 3 3 4 Cette matrice comprend quatre valeurs distinctes. On se propose dafficher : 1 en noir, 2 en blanc, 3 en rouge, et 4 en vert. Pour cela on cre une LUT map4C dont les sorties sont les quatre couleurs souhaites. Pour appliquer cette LUT limage affiche, on tape la commande colormap(map4C) : M = [4 4 1 ; 1 2 2 ; 3 3 4] ; % Dfinition de la LUT = palette de couleurs indexes (tableau) r = [0 1 1 0]; v = [0 1 0 1]; b = [0 1 0 0]; map4C = [r v b]; % cration de la LUT qui convertit les pixels 1 en noir (0, 0, 0) image(M) colormap(map4C) % indique la palette de couleurs indexes considre 1) Crer le bouton LUT Inv dans linterface (GUIDE : .fig) et complter la fonction correspondante dans le fichier Matlab (.m) pour recrer linversion vido (ralise prcdemment partir dune image en niveaux de gris) grce une LUT. 2) Enfin crer les boutons LUT R, LUT V et LUT B dans linterface (GUIDE : .fig) et complter la fonction correspondante dans le fichier Matlab (.m) pour visualiser plan par plan limage couleur, en crant les LUT adquates pour les plans Rouge, Vert et Bleu. Rappel : pour une image couleur Im, le canal Rouge sobtient grce linstruction suivante : R = Im( : , : , 1) ;
% Plan Rouge
M1 INFO Module : TI
La mthode dOtsu repose sur lhypothse que les pixels de limage appartiennent deux classes C1 et C2. Si on dcide que les pixels appartiennent C1 si leur niveau est infrieur ou gal t et appartiennent C2 sinon, on peut calculer la probabilit a priori de C1 et C2.
Les moyennes et variances des niveaux de gris de C1 et C2 sont alors donnes par :
On montre que : Par ailleurs, on appelle intra la variance intra-classe et inter la variance interclasse dfinies par :
M1 INFO Module : TI
On montre que (variance des niveaux de gris de limage) est indpendante du seuil de binarisation et que :
En revanche, intra et inter dpendent de la sparation en classes. Selon Otsu, la sparation optimale est obtenue en minimisant la variance intra-classe et en maximisant la variance interclasse. Or la somme de ces deux variances est constante, de ce fait, maximiser la variance interclasse est quivalent minimiser la variance intra-classe. Le seuil idal est alors obtenu pour le maximum de inter.
10