Académique Documents
Professionnel Documents
Culture Documents
Niveau : GL4
Responsable du cours: Sonia BOUZIDI
Enseignante du TP : Mariem ZAOUALI
5 4
6
1. Le contenu de votre disque (système de fichiers). A l’aide de cette partie, vous pouvez accéder au
répertoire contenant votre script ou fonction.
En Matlab ©, une image I(m,n) est la réponse d'un pixel situé au mème ligne et nème colonne commençant
du haut gauche de l'origine de l'image.
Dans le cadre de ce TP, nous considérons l'image comme étant un signal discret. L'analyse des images discrètes
conduit à une formulation algébrique linéaire. On peut traiter les images aussi dans le domaine continu.
Théoriquement ceci est possible et nous permet d'appliquer les intégrations et le calcul différentiel pour
comprendre les propriétés de l'image.
Nous manipulons dans ce TP, les images discrètes dans un repère 2D, mais certaines applications de traitement
d'images, étendent ce repère pour représenter d'autres composantes à part les composantes spatiales (x,y)
élémentaires. Par exemple dans le domaine de l'imagerie médicale, on peut représenter des organes : par
exemple un cœur qui bat : 2D pour les propriétés spatiales (x,y) et 1D pour la notion du temps. On peut même
aller à 4D : où les caractéristiques spatiales sont représentées sur 3 dimensions et la 4ème D est pour le temps
2. Parcourez la variable dans laquelle vous avez enregistré votre image avec la structure itérative for.
for x =1 : size(I1,1) % I1 est une matrice, size(I1,1) veut dire : retourner le nombre de lignes de la matrice
for y=1 :size(I1,2) % I1 est une matrice, size(I1,2) veut dire : retourner le nombre de colonnes de la matrice
end
end
En Matlab ©, l'affichage de l'image se fait à travers un Colormap. Ce dernier associe à chaque nuance de couleur
une valeur numérique pour donner une représentation visuelle de l'image.
subplot(3,1,1); % Créer une zone d’affichage de taille 3x1 (3 lignes, une colonne)
subplot(3,1,2); imagesc(C); axis image; % Affichage de la deuxième image en appliquant un autre colormap
Le Colormap le plus courant est le « grayscale »- niveaux de gris, qui associe toutes les nuances du gris : du noir
(valeur 0 : absence de lumière) jusqu'au blanc (valeur maximale qui peut être 2 exposant n, avec n est un entier
naturel).
Certains Colormaps vous servent à faire apparaître des détails non perceptibles avec l'œil. En effet, l'œil humain
ne peut distinguer qu'approximativement 40 nuances de gris ! Cette manipulation s'avère fructueuse dans le
contexte des images médicales et astronomiques.
4. Définissez votre Colormap dans une fonction à part et revenir au script pour l'appliquer
A part les images de niveaux de gris, on trouve les images couleurs où la valeur d'intensité d'un pixel est calculée
à l'aide d'un vecteur de valeurs : Rouge, Vert, Bleu ou communément connu par RGB.
D'autres représentations de couleurs sont possibles : la HSV : Hue, Saturation et Variance où les couleurs sont
découplées de l'information chromatique de l'image.
2.2.a RGB
Les images RGB ou couleur réelle sont des tableaux 3D : Il s'agit de 3 plans 2D, chacun représente un cannal de
couleur : Rouge, Vert, Bleu. Ainsi, la valeur numérique d'un pixel couleur dans une image naturelle est un
mélange de ces trois couleurs. On peut confondre cet espace à un cube couleur comme il est indiqué dans la
figure ci-dessous
1. Ecrivez un script pour convertir une image RGB à une image en niveau de gris selon la formule suivante :
2. Y-a-t-il une perte d'informations lorsqu’on passe de l'espace RGB aux niveaux de gris?
2.2.b HSV
1. Décomposez une image RGB en un ensemble de composante de l'espace HSV, comme dans la figure 4 et
affichez-les. (indication : utilisez rgb2hsv)
La résolution spatiale : la dimension (Ligne,Colonne) d'une image définie le nombre de pixels utilisés
pour couvrir l'espace visuel capturé par une image. Exemple 1024x786, 640x480 etc
Bit-resolution : Celle-ci définie le nombre d'intensité (i.e. couleur) qui peut représenter un pixel dans une
image. Par exemple, les images binaires se codent juste sur 2 bits : 0 et 1 i.e. 2 couleurs. Les images de
niveaux de gris peuvent se coder sur 256 nuances de gris.
1. Bit-plane Slicing : Soit une image I : ‘onion.png’ de niveau de gris codé sur 8 bits (nuance de gris varient
de 0 à 255). La technique du Bit-plane slicing consiste décomposer l'image en un ensemble de plans,
dans notre cas, 8 plans. Afficher les 8 plans de l'image. Commenter ces plans de points de vue quantité
d'informations. Pour afficher tous les plans dans une seule figure, utiliser subplot
6. Manipulations avancées
1. En utilisant les images 'cell.tif', accédez à l'emplacement (100,20) et appliquez ces deux opérations
I(i,j)=I(i,j)+25 et I(i,j)-25. Commentez l’effet obtenu.
Faites de même pour une image RGB, en agissant en premier lieu, sur les trois canaux puis en agissant sur un
seul à la fois. Affichez l'image après chaque manipulation.
2. Chargez une image quelconque, enregistrez là en format JPEG et en format PNG. Puis rechargez les images de
nouveaux dans deux variables Ijpeg et Ipng respectivement. On veut vérifier que les images n'ont pas changé.
Pour ce faire, utilisez imabsdiff. Affichez les images avec imagesc. L'image a-t-elle changé finalement ?