1 – Acquisition d’images sous Matlab
2 – Amélioration et restauration d’images
3 – Morphologie mathématique
I – Acquisition d’images sous Matlab
L’objectif de ce TP Matlab est de prendre en main les outils de traitement d’images les plus classiques à l’aide du logiciel Matlab. Matlab est un logiciel de calcul scientifique permettant de développer des solutions à des problèmes techniques. Il permet de réaliser du calcul numérique et de tracer des graphiques pour visualiser et analyser les données. Il dispose d’un langage et d’un environnement de programmation interactifs ainsi que d’outils pour concevoir des interfaces utilisateur graphiques. Matlab est associé à des boites à outils appelé TOOLBOX permettant d’accéder à des fonctions spécifiques à un domaine d’application comme le traitement d’images par exemple.
1 Prise en main
Ce premier exercice est destiné à prendre en main les toolbox Image Processing et Image Acquisition.
1.1 Rappel sur Matlab
La figure 1 montre la décomposition de Matlab en plusieurs fenêtres :
• une fenêtre d’édition des commandes (Command Window),
• deux fenêtres contenant un onglet de visualisation de l’espace des variables (Workspace), un onglet de visualisation des fichiers du répertoire de travail (Current Directory) et un onglet de visualisation de l’historique des commandes (Command History).
• une fenêtre d’édition 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 éditées dans la fenêtre de commandes et exécutées en appuyant sur la touche Entree.
Le point virgule à la fin d’une fonction permet d’éviter d’afficher les données résultats de la fonction exécutée ou de séparer plusieurs fonctions sur une même ligne de commande. Plusieurs fonctions et commandes peuventêtre saisies dans un fichier qui sera enregistré avec l’extension .m. En éditant le nom de ce fichier dans la fenêtre de commande, l’ensemble des fonctions déclarées dans ce fichier seront exécutées.
L’édition de ce fichier peut s’effectuer en sélectionnant dans le menu File : New I M-file. Il est également possible d’y créer des fonctions en utilisant la commande function.
1.2 Lecture, affichage et sauvegarde d’une image
Le chargement en mémoire 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(’cameraman.tif’);
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 mémoire et la fonction imfinfo affiche les informations relatives à un fichier image.
L’affichage de l’image (ou de la variable) est réalisé par la fonction imshow. Ainsi les fonctions suivantes ouvrent une nouvelle fenêtre pour y afficher l’image I .
figure; imshow(I);
1) Afficher l’image ’cameraman.tif’ et donner les caractèristiques 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 différents formats (tif, jpg, bmp, pcx, png, gif, emf, eps, …).
2) Enregistrer l’image ’cameraman.tif’ sous les formats suivants : JPEG, BMP, PNG, GIF et le format TIFF sans compression. Ouvrir et afficher ensuite chacune de ces images, observer leurs différences et comparer les avec l’image d’origine. Mesurer ces différences avec l’image d’origine en calculant l’erreur quadratique moyenne.
1.3 Acquisition d’une image
Le matèriel d’acquisition est une simple WebCam posée sur un portique et reliée au PC par le port USB.
Un pilote Windows spècifique permet de communiquer entre le PC et la Webcam.
La fonction imaqhwinfo permet l’obtention d’informations sur le matériel et les pilotes installés.
4) En utilisant cette fonction, dèterminer les caractéristiques matériel et logiciel du système d’acquisition installé.
L’acquisition d’une image sous Matlab passe par la création d’un objet d’entrée vidéo en utilisant la fonction video input. Cette fonction affiche également les principales propriétés de l’objet d’entrée vidéo créé. Un objet d’entrée vidéo est un objet de type structure sur laquelle il est possible de régler plusieurs propriétés :
• les paramètres liés au périphérique comme :
– le format de l’image,
– l’espace de codage de l’image (RGB, YCbCr, niveaux de gris, …)…
1.4 Types des images en mémoire
Matlab supporte 4 formats d’images :
• les images binaires,
• les images d’intensités ( à niveaux de gris),
• les images couleur RGB,
• les images couleur indexées.
Il est possible de changer de format en utilisant les fonctions suivantes :
• ind2gray : indexé → intensité,
• ind2rgb : indexé → RGB,
• rgb2ind : RGB → indexé,
• rgb2gray : RGB → intensité,
• im2bw : intensité, indexé, RGB → binaire : c’est l’opérateur de binarisation. Une image binaire peut etre également obtenue en utilisant des opérateurs de comparaison et des opérateurs 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 à des valeurs.
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 : sélectionne une zone de l’image,
• improfile : affiche le profil d’une ligne sélectionnée,
• impixel : retourne les valeurs des pixels sélectionnés,
• impixelinfo : affiche la position et les valeurs d’un pixel pointé avec la souris,
• impixelregion : affiche les valeurs des pixels dans une région sélectionnée avec la souris,
• imdistline : affiche la distance entre deux pixels sélectionnés,
• imdisplayrange : affiche l’intervalle des valeurs des pixels de l’image,
• imcontrast : réajuste une image,
• imtool : outil qui utilise les outils précédents.
D’autres fonctions permettent des opèrations géométriques sur l’image :
• imresize : ré-échantillonnage de l’image (homothétie),
• imrotate : rotation de l’image..
Traitement d’images sous Matlab (429.45 KO) (Cours PDF)