Vous êtes sur la page 1sur 2

USTHB/FEI : Master 1 ST (S2) Module : Bases de Traitement d’Images (2019)

TP1 : Initiation aux manipulations des images numériques

L’objectif : est d’initier les étudiants aux manipulations, sous Matlab, des fichiers images en mono et
multidimensionnel, de réaliser des opérations arithmétiques entre images et enfin de visualiser les résultats en
images ‘niveaux de gris’ et en images’ fausses couleurs et pseudo-couleurs’.

Rappel : Une image analogique est obtenue par un capteur d’image qui converti la scène physique en un signal
continu bidimensionnel. Les opérations d’échantillonnage et de quantification convertirent ce signal continu 2D en
une matrice 2D représentant l’image numérique.

a. Une image numérique I(x, y): est définie comme un signal fini (domaine borné) ayant :
 Deux dimensions :
Une largeur (représentée par le nombre de colonne (Nbcol) selon le pas d’échantillonnage spatial
(résolution spatiale) en X et la dimension de l’espace observé
Une hauteur (représentée par le nombre de ligne (Nblin))) selon le pas d’échantillonnage spatial
(résolution spatiale) en Y et la dimension de l’espace observé.
 Des niveaux de quantification (niveaux de gris): représentés par des valeurs quantifiées du signal 2D dans
l’intervalle [0, 2n-1] ou n est le nombre de bits utilisé dans la codification du signal en niveau de gris Ng. La
largeur de cet intervalle exprime la résolution radiométrique.
 Si cette image est acquise en plusieurs plans (exemple : plusieurs coupes en imagerie médicale, plusieurs bandes
spectrales en imagerie satellitaires, etc), la matrice image aura une troisième dimension I(x, y, z): z est variable en
nature et en dimensions qui dépendront du types d’images et du domaine d’application.
 La représentation ‘ affichage, visualisation’ d’image : peut-être en niveaux de gris pour image en une seule
bande, en fausse couleur, dont les niveaux sont codifiés selon une palette de couleur ou en composition colorée
(pseudo-couleur). Ce dernier cas, nécessite trois bandes qui vont être associées aux trois couleurs fondamentales
[R(rouge) G(vert) B(bleu)]. Dans le cas d’image multibandes, les bandes sont enregistrées, séquentiellement dans
le fichier-image.

b. Formats usuels d’images, utilisés par l’outil Matlab sont : .tif, .bmp, .jpg, .jpg,. .gif etc.

Manipulation :
Partie I :
1. Extraire les bandes 1, 3 et 5 à partir d’un fichier image composé de 6 bandes (composantes) sans header.
2. Afficher les trois images séparément.
3. Sauvegarder la bande 1 en format .bmp, la bande 3 en format .jpg et la bande 5 en tif
4. Afficher les informations inscrites dans le header de chaque fichier. Que remarquez-vous ?
5. Créer l’image composition colorée (b1, b5, b3) et sauvegarder la en format .bmp
6. Vérifier la taille du fichier de sortie (RGB).

Partie II (exercice d’application):


Une ligne d’une image Ie(x,.), figure ci-contre, est formée de 35 pixels.
Elle représente, dans la réalité, un terrain d’entrainement de 525 m de
longueur et de largeur (Yen m).
a. Déterminer le pas d’échantillonnage, en terme de résolution
spatiale et déduire la valeur de Y, si on suppose que la taille du
pixel est carrée.
b. Si le convertisseur analogique/numérique utilisé pour la
numérisation du signal analogique de cette ligne a un pas de
quantification de 𝑞 = 0.2 𝑚𝑣. Quelle est la plage de variation,
en tension du signal analogique de cette ligne.
c. Si on suppose que le signal analogique de cette route a été
échantillonné pendant 280 s avec une fréquence d’échantillonnage
de 0.5 MHz. Quel est le nombre de pixel obtenu par cet
échantillonnage.

1
USTHB/FEI : Master 1 ST (S2) Module : Bases de Traitement d’Images (2019)

Fonctions Préprogrammées de Matlab :

 Types de variables à manipuler :

'double' : double précision, ‘single' : simple précision, ‘int8' : un octet signé (-128 à 127),
'uint8' : un octet non signé (0 à 255), 'int16' : deux octets signés (-32768 à 32767),
'uint16' : deux octets non signés (0 à 65,535), 'int32' : quatre octets signés, 'uint32' : quatre octets non signés,
'int64' : huit octets signés, ‘uint64' : huit octets non signés.

Concaténation de vecteurs et de matrices :


 A = vertcat (M1, M2, M3,……Mn) : concaténation verticale, par rapport aux lignes, des matrices ou des vecteurs lignes
Mi, le résultat est sauvegardé dans une nouvelle matrice ‘AA’ à condition que toutes les matrices ou vecteurs M i ont le
même nombre de colonnes.
 B = horzcat (M1, M2, M3,……Mn) : concaténation horizontale, par rapport aux colonnes, des matrices ou des vecteurs
colonnes Mi, le résultat est sauvegardé dans une nouvelle matrice ‘BB’ à condition que toutes les matrices ou les vecteurs
Mi ont le même nombre de lignes.
 C = cat(dim, M1, M2, M3,……Mn) : concaténation de matrices selon l’argument ‘dim’.
dim= 1  vertcat ; dim = 2  horzcat ; dim= 3  concaténation en profondeur (3ème dimension)

******************************************************************************************************
 Manipulation des fichiers et des matrices images :
 id = fopen(‘file_name’, ‘rb’) : Ouvrir le fichier image ‘file_name’ (non formaté) en lecture binaire (id est un identificateur
du fichier)
 M = fread(id, ‘argument’=’type’) : Lecture du contenu du fichier ‘file_name’ indiqué par identificateur id dans la matrice
M en spécifiant certains arguments (exemple : lecture d’une partie du fichier)
 id = fopen(‘file_name’, ‘wb’) : Ouvrir un nouveau fichier vide, appelé ‘file_name’, en écriture binaire.
 fwrite(id, matrice_image, ‘type’) : Ecrire le contenu de la matrice_image dans le fichier indiqué par son identificateur
 fclose(id) : Fermeture des fichiers
 fseek(fileID, offset, origine) : permet de positionner le pointer à une adresse définie dans le fichier.
******************************************************************************************************
 imshow (xxx, intervalle de la dynamique de xxx ) : Affichage de l’image sauvegardée dans une matrice
 imwrite (xxx, 'nom_file.lll') : Sauvegarde de la matrice image ‘xxx’ dans le fichier avec une extension ’lll’ reconnue par
le logiciel matlab .
 M = imread ('nom_fille.lll'): Lire l’image stockée dans le fichier formaté' nom_fille.lll' et la sauvegardée dans la matrice M
 Image(M) : Affichage de la matrice comme une image.
 imfinfo('nom_fille.lll') : Lire et afficher l’entête ‘header’ du fichier_image formaté.
 whos M : Lister ou afficher les attributs de l’image, stockée dans la matrice M, dans l’espace de travail
 title (‘résultat toto’) : Affiche le titre de la figure dans la fenêtre graphique.
 A = multibandread ('file_name, [nblig, nbcol, nbb], 'type=>type', taille de l’entête, 'structure (BSQ, BIL, BIP)', 'ieee-le',
{'Band','Direct',[1 2 3 …n ]}) : Lire un fichier image multibande dans une matrice A à trois dimensions [nblig,
nbcol, nbb (voir aussi ‘multibandwrite’ la sauvegarde d’une matrice multibande dans un fichier).
 B = reshape(A, nblig, nbcol, nbb) : Redimensionner la matrice A en une matrice B

******************************************************************************************************
 Fonctions graphiques d’affichage : image, histogramme, courbes :
 Figure() : Création d’une figure (fenêtre) graphique, ses arguments (position, taille) sont définis par défaut mais on peut les
spécifier.
 plot : affichage d’un graphe
 subplot (n,m,p) : Création des blocs d’affichage dans la fenêtre graphique, n : nombre de blocs de la fenêtre en verticale ,
m : nombre de blocs de la fenêtre en horizontale, p : position du bloc dans la fenêtre d’affichage (on peut afficher plusieurs
images dans la même fenêtre ).

 Fonctions associées aux tables de transfert RGB


Colormap (argument) : définie la couleur ou le niveau de gris affiché d’un pixel à travers les trois vecteurs RGB dont le
contenu de ses vecteurs défini la dynamique des niveaux de gris des trois composantes RGB (le contenu est compris entre 0 et
1 dans l’outil Matlab).

Vous aimerez peut-être aussi