Você está na página 1de 5

Traitement du signal sous matlab M.

SABRI 2008 Universit Sultan My Slimane

TP IX

NOTIONS de TRAITEMENT dIMAGES

_____________________________________________________________________________________________________

I- DEFINITIONS 1- Une image deux dimensions est dfinie comme une matrice I(N,N) de N ligne et N colonnes. 2- Le point (i,j) est appel pixel (picture cell), sa valeur I(i,j) relle traduit le degr de luminosit de limage au point (i,j) : On lappelle niveau de gris de limage au point (i,j). 3- Gnralement N est une puissance de 2 (32,64,,1024..) et le niveau de gris des pixels varie entre 0 et 255=256-1=2 8 -1. 0 correspond au noir (luminosit minimum) et 255 au blanc (luminosit maximum) ; Tous les niveaux sont codables sur 8 bits (octet ou byte). Ceci pour une image noir et blanc, pour une image couleur, il faut prvoir trois matrices qui correspondent aux niveaux du rouge, vert et bleu (RVB ou RGB).
pixel (1,1) (1, N )

( N ,1)

(N , N )

II- Mmoire occupe par une image : Les images noir et blanc ou couleur occupent beaucoup despace mmoire, ceci est ressenti lors de la conception dun programme manipulant plusieurs images. Ainsi une image telle que celle dfinie ci-dessus, va occuper NxNx8 bits ou encore NxN octets (un Kilo octets=1Kb=1024 octets=2 10 octets): N Mmoire en bytes Mmoire en Kby 128 16.384 16 256 65.536 64 512 262.144 256 1024 1.048.576 1024=1Mby III- Codage dune image : On parle aussi de compression dune image. Vue la taille occupe par une image, surtout en couleur et lorsque les images sont animes, on a invent des mthodes qui permettent de rduire considrablement la taille mmoire dune image aprs compression : On distingue les images bitmap, tif, gif, epg, jpegsuivant la mthode de compression utilise. 32
TP 9 : Notions de traitement dimages

Traitement du signal sous matlab M. SABRI 2008 Universit Sultan My Slimane

MATLAB jpg' or 'jpeg' 'tif' or 'tiff' 'gif' 'bmp' 'png' 'hdf' 'pcx' 'xwd' 'cur' 'ico' IV- Format dune image :

Dnomination Joint Photographic Experts Group (JPEG) Tagged Image File Format (TIFF) Graphics Interchange Format (GIF) Windows Bitmap (BMP) Portable Network Graphics (PNG) Hierarchical Data Format (HDF) Windows Paintbrush (PCX) X Window Dump (XWD) Windows Cursor resources (CUR) Windows Icon resources (ICO)

Comme tout fichier format, une image en mmoire est un fichier qui possde deux champs : Une entte : cest une suite doctets spcifiant le nombre de lignes et de colonnes de limage, le nombre doctets par pixel, le genre de codage utilis pour compresser limage Cest justement le format induit par la mthode de compression : tif, gif, mpeg Les donnes : cest la suite des niveaux de gris de tout les pixels de limage tenant compte de la mthode de compression, ce qui exige pour lire limage un programme spcifique connaissant le code de limage. V- Lecture et criture dune image : La fonction imread (nom de limage) permet de lire une image : Si R est une matrice NxN, la commande imwrite (R,nom.tif) cre une nouvelle image NxN nom.tif dont les pixels ont les niveaux de gris figurant dans la matrice r. Exemple 1 i=imread (cameraman.tif) ; %lecture de limage cameraman de format tif Cette instruction stock limage cameraman.tif dans une matrice i de type uint8. Visualisation dune image imshow (i) %affichage de limage

On peut visualiser une matrice R de type uint8 avec la mme commande. Si R est de type double, il faut la convertir uint8(R) pour la visualiser. Excutez la commande whos pour voir la taille de limage, le nombre de lignes et de colonnes. Pour connatre les niveaux de gris de limage, il suffit de taper la commande i. Les niveaux de gris de limage sont disponibles maintenant dans la matrice i, ce qui nous permet deffectuer toutes les transformations possibles sur cette image et de 33
TP 9 : Notions de traitement dimages

Traitement du signal sous matlab M. SABRI 2008 Universit Sultan My Slimane

sauver les rsultats du traitement dans une autre image (il faut la convertir au type double avant de la manipuler x=double(i)). VI- Oprations sur les images Les oprations mathmatiques ncessaires seffectuent sur des variables de type double ; il serait indispensable de convertir les images sources avant leur traitement de la manire suivante : isource = fread (nom_image) ; id=double (isource) ; Cest sur id que seront appliqus les traitements. 1- calcul de la moyenne et de lcart type prog1.m : Calculer la moyenne arithmtique et lcart type des niveaux de gris de limage cameraman.tif ainsi que les caractristiques suivantes : m=mean (i( :) ); mc=mean (i) ; ml=mean (i) ; d=(i-m).^2 ; v=mean(d(:)) ; s=sqrt(v) ; inf=min(x( :)) ; sup=max(x (:)) ; % donne la moyenne de tous les niveaux de gris :un scalaire % donne la moyenne de chaque colonne de limage : un vecteur % donne la moyenne de chaque ligne de limage : un vecteur % cart quadratique : une matrice % variance des niveaux de gris : un scalaire % cart type des niveaux de gris : un scalaire % Le niveau de gris le plus faible: un scalaire % Le niveau de gris le plus lev: un scalaire

2- Filtrage dune image On considre le pixel x(i,j) dune image donne, et on sintresse ses 8 pixels proches voisins : x(i-1,j-1), x(i,,j-1), x(i+1,j-1), x(i-1,j), x(i+1,,j), x(i-1,j+1), x(i,j+1) et x(i+1,j+1). Ces neuf pixels forment une fentre locale :

x(i 1, j 1) x(i 1, j ) x(i 1, j + 1) x(i, j 1) x(i, j ) x(i, j + 1) x(i + 1, j 1) x(i + 1, j ) x(i + 1, j + 1)


On considre dautre part un masque de taille 3x3 coefficients ai,j donns :
a1,1 a1, 2 a1,3 a 2,1 a 2, 2 a 2,3 a 3,1 a 3, 2 a3,3 Un filtrage linaire de limage x(.,.) consiste crer une nouvelle image y(.,.) en glissant le masque point par point et en effectuant une combinaison pondre linaire des niveaux de gris :

34

TP 9 : Notions de traitement dimages

Traitement du signal sous matlab M. SABRI 2008 Universit Sultan My Slimane


m =3 n =3 m =1 n =1

y (i, j ) = a m,n .x(i + m 2, j + n 2)

On voit bien que y est une convolution bidimensionnelle de x et a. Filtrage par la moyenne Les coefficients du masque sont tous gaux 1/9 : Ralisez un programme prog2.m qui effectue le filtrage local 3x3 et visualisez le rsultat pour plusieurs images. Quel est leffet du filtre ? Filtrage mdian Le filtrage mdian est une opration non linaire, qui consiste en deux tapes : Ranger les niveaux de gris de la fentre locale de x dans lordre croissant. Affecter y(i,j) le niveau de gris mdian (qui se classe au cinquime rang parmi les neuf niveaux). prog3.m Ralisez le filtrage mdian et expliquez son effet en le comparant au moyennage. VII- Seuillage dune image (Binarisation) Le seuillage dune image consiste choisir un nombre rel s (threshold) et de tester les pixels de limage point par point et ligne par ligne : tout niveau de gris infrieur au seuil s est mis zro (noir) sinon il est mis 255 (blanc) ou 1 : Binarisation. Matlab permet en une seule instruction de comparer les lments dune matrice M un seuil donn s : a=(M>s), a est une matrice compose de 1 et de 0. prog4.m Ralisez un programme qui effectue le seuillage dune image. Choisissez plusieurs seuils, y compris la moyenne de limage. Effectuez le seuillage sur plusieurs images. Afficher limage originale et limage seuille en mme temps VIII- Dtection du contour dune image Le contour dune image Im(N,N) est lui-mme une image C de mme taille NxN : Limage C contient les limites ou frontires ou primtres des objets contenus dans Im. Par exemple si Im est la photo dun disque plein alors C sera une image contenant un cercle de mme centre et rayon que le disque. La dtection du contour est lopration mathmatique et informatique qui permet de dduire C partir de Im. Mthode du gradient : Le calcul des pixels de C seffectue en faisant la soustraction des pixels voisins de Im : Horizontalement (gradient horizontal): C(i,j)=Im(i, j+1)-Im(i,j) Verticalement (gradient vertical): C(i,j)=Im(i+1, j)-Im(i,j) 35
TP 9 : Notions de traitement dimages

Traitement du signal sous matlab M. SABRI 2008 Universit Sultan My Slimane

Il faut prendre la valeur absolue des diffrences !! Le parcours dune image ligne par ligne (ordre lexicographique) dans un programme seffectue de la manire suivante : for i=1 :N for j=1 :N traitement1 ; traitement2 ; end end prog5.m Ralisez un programme qui donne le contour horizontal dune image et visualisez le rsultat. Ralisez un programme qui donne le contour vertical dune image et visualisez le rsultat. Gnrez et visualisez limage moyenne des deux contours prcdents. Testez le programme sur plusieurs images. %parcours des lignes i %parcours des colonnes j

Original Saturn Image

Edge Map

Original Image

Corrupted Image

Filtered Image

____________________________________________________________________________________________________

Le compte rendu de la sance doit tre rdig sur la feuille qui vous est fournie et doit contenir : Un listing des programmes : prog1.m, prog2.m, prog3.m, prog4.m, prog5.m 36
TP 9 : Notions de traitement dimages

Você também pode gostar