[PDF] [PDF] TRAITEMENT DIMAGE, BASES Découvrir quelques - LIRMM

Ce format est très compatible avec le format de représentation des images 2• CHARGEMENT, AFFICHAGE, Liste des instructions disponibles sous matlab :



Previous PDF Next PDF





[PDF] Traitement dimages sur MATLAB - Moodle INSA Rouen

17 jui 2019 · Une image en noir est blanc est une sous-catégorie des images en nuances de gris avec seulement 2 nuances différentes (0 pour le noir et 1 ou 



[PDF] R31 – Initiation au traitement numérique dimages avec Matlab/Octave

Nous utiliserons aussi GNU Octave (en abrégé Octave) qui est un logiciel libre distribué sous licence GNU GPL Octave est un interpréteur de haut niveau, 



[PDF] TRAITEMENT DIMAGE, BASES Découvrir quelques - LIRMM

Ce format est très compatible avec le format de représentation des images 2• CHARGEMENT, AFFICHAGE, Liste des instructions disponibles sous matlab :



[PDF] Initiation au traitement dimages avec MATLAB - Audentia

I 2 Rappels sous Matlab : Une image Matlab est une matrice bidimensionnelle de valeurs entières ou réelles Les principales fonctions de traitement 



[PDF] Cours de Traitement dImages

NB : Pour lire des images sous Matlab, on utilise la commande imread() : I= imread('chromosome tif'); Pour afficher une image en niveau de gris : imagesc(I)



[PDF] Travaux pratiques et travaux dirigés de traitement dimages - L2TI

http://www-l2ti univ-paris13 fr/˜dauphin/IM/tp_tin_ir pdf Travaux pratiques La liste des images disponibles sous Matlab est help imdemos On peut aussi 



[PDF] Travaux pratiques de traitement dimage numérique - L2TI

Le traitement d'image amène à faire des opérations sur les valeurs de chaque pixel La liste des images disponibles sous Matlab est help imdemos, ou



[PDF] Le traitement dimages « pour les nuls » - www6inrafr

12 jui 2019 · correspondantes, sous Matlab 3 1 2 Normalisation des intensités Les images en niveaux de gris sont la plupart du temps stockées sur 256 



[PDF] Introduction au traitement dimages - Loria

outils de test et de démonstration : matlab + toolbox image processing meilleure compréhension du rendu (sous matlab : edit→colormap) ▷ les images  



[PDF] Matlab pour traitement de limage fondement et applications

3 mai 2017 · 2 11 Restauration dlimage flou ou dégradée sous MATLAB 35 3 La détection des contours dans les images 42 3 1 Principe du 

[PDF] COURS DE MATHÉMATIQUES PREMI`ERE ANNÉE (L1 - IMJ-PRG

[PDF] Cours de spécialité mathématiques en Terminale ES - Olivier Lader

[PDF] Moteurs diesel cours - qcmtest

[PDF] physique BTS 1 - Don Bosco Marseille

[PDF] MECANIQUE DES FLUIDES Cours et exercices corrigés - UVT e-doc

[PDF] iut cachan - gmp 2 - Matthieu Barreau

[PDF] COURS MECANIQUE CLASSIQUE

[PDF] Le MEDAF Modèle d 'évaluation des actifs financiers

[PDF] Collège des Enseignants Hopsitalo-Universitaires de Médecine et

[PDF] La sélection des moyens de communication :

[PDF] MERCHANDISING COURS ET APPLICATION

[PDF] MERISE - Lipn

[PDF] Merise - Cours ofppt

[PDF] la messagerie electronique - ACTIV Formations

[PDF] Initiation ? la Météorologie appliquée ? l 'aéronautique Pour le BIA

[PDF] TRAITEMENT DIMAGE, BASES  Découvrir quelques  - LIRMM

Travaux pratiques de traitement d'imageO. Strauss

Capteurs et traitement d'images1 M1 EEA

TTTT

RRRRAAAAIIIITTTTEEEEMMMMEEEENNNNTTTT

DDDD

IIIIMMMMAAAAGGGGEEEE

BBBBAAAASSSSEEEESSSS

1111••••OOOO

BBBBJJJJEEEECCCCTTTTIIIIFFFF

DDDDEEEE

CCCCEEEETTTTTTTTEEEE

PPPPAAAARRRRTTTTIIIIEEEE

Découvrir quelques méthodes de base du traitement d'images. Pour en savoir plus sur telle ou telle fonction de traitement d'images, vous pouvez toujours vous aider du help de matlab. Nous vous conseillons d'ailleurs de regarder la documentation offerte par le help pour toutes les fonctions que vous allez utiliser. Matlab est un langage qui utilise les données sous forme matricielle. Ce format est très compatible avec le format de représentation des images.

2222••••CCCC

HHHHAAAARRRRGGGGEEEEMMMMEEEENNNNTTTT

AAAAFFFFFFFFIIIICCCCHHHHAAAAGGGGEEEE

Liste des instructions disponibles sous matlab :

•imread : chargement d'une image, syntaxe im1=imread('nom_de_fichier.ext'); •image(im1) : affiche l'image im1 dans une fenêtre du type figure •colormap(gray(255)) : spécifie pour l'affichage d'une image, la palette de couleur •axis('image') : échelle carrée des pixels •ginput(1) permet de saisir les coordonnées d'un point dans l'image avec la souris, syn- taxe : [x,y]=ginput(1) •double : transforme des données uint8 en double •max(data) recherche la valeur maximum dans data •min(data) recherche la valeur minimum dans data •figure(n) fait apparaître la figure n

2222....1111••••CCCChhhhaaaarrrrggggeeeemmmmeeeennnntttt dddd''''iiiimmmmaaaaggggeeee....

Nous allons travailler sur une image présentant une vue de divers chocolats sur fond blanc. Pour charger cette image, utilisez la fonction imread

ImageChocolat = imread(

Chocolat.jpg

L'objet

ImageChocolat

est une matrice Nlin x Ncol. Vous pouvez obtenir ses dimensions en utilisant la fonction size [Nlin, Ncol] = size(ImageChocolat) ; Le < ; > permet d'éviter l'affichage, alors que la < , > permet l'affichage des valeurs. Pour obtenir la valeur de niveau de gris d'un pixel, il suffit de l'adresser. Par exemple, si on veut connaître la valeur de niveau de gris du pixel central de l'image il suffit d'écrire : ImageChocolat(floor(Nlin/2), floor(Ncol/2)) , % virgule pour l'affichage

La fonction

floor assure que la coordonnée est bien une valeur entière.

2222....2222••••AAAAffffffffiiiicccchhhhaaaaggggeeee ddddeeee llll''''iiiimmmmaaaaggggeeee....

Pour afficher l'image dans une figure, il faut, tout d'abord, créer la figure, puis demander au système d'afficher l'image dans la figure : figure(12) ; image(ImageChocolat) ;

Travaux pratiques de traitement d'imageO. Strauss

Capteurs et traitement d'images2 M1 EEA

Votre image ne s'affiche pas avec les bonnes couleurs. Pour obtenir un affichage correct, il faut changer la table des couleurs. Vous pouvez le faire avec la commande colormap : colormap(gray(256)) ; Enfin, si vous tentez de déformer l'image en manipulant la fenêtre la figure, vous ne maîtrisez pas la dimension de l'image. Pour que l'affichage respecte les dimension de l'ima- ge il faut lui préciser le rapport hauteur largeur par : axis('image') ;

2222....3333••••EEEEccccrrrriiiittttuuuurrrreeee ddddeeee ssssccccrrrriiiipppptttt....

Vous pouvez résumer la totalité de ces instruction dans un ficher script. Pour ce faire, placez-vous dans un répertoire de travail vous appartenant (menu déroulant dans le ban- deau du haut de la fenêtre interface), puis tapez la commande : edit MonProgramme.m ce qui provoquera l'appel de l'editeur de matlab. Vous pouvez écrire dedans toutes les commandes que nous avons utilisé : clear all ; close all ; % ces commandes permettent de fermer % toutes les fenêtres et de liberer toutes les variables

ImageChocolat = imread('Chocolat.jpg') ;

[Nlin, Ncol] = size(ImageChocolat) ; figure(12) ; image(ImageChocolat) ; colormap(gray(256)) ; axis('image') ; Vous sauvez votre script et vous pouvez le lancer en mettant son nom dans la fenêtre de commande :

MonProgramme

2222....4444••••TTTTrrrraaaannnnssssffffoooorrrrmmmmaaaattttiiiioooonnnn dddduuuu ffffoooorrrrmmmmaaaatttt....

Matlab calcule sur 32 bits tandis que les données images sont codées sur 8 bits. Pour passer de 8 bits a 32 bits il faut taper la commande :

ImageChocolat = double(ImageChocolat) ;

2222....5555••••IIIInnnnvvvveeeerrrrssssiiiioooonnnn dddd''''iiiimmmmaaaaggggeeee....

Les chocolats apparaissent en noir sur fond blanc, si on veut inverser l'image il suffit de taper :

ImageChocolat = 255 - ImageChocolat ;

vérifiez cela en affichant l'image.

2222....6666••••SSSSeeeelllleeeeccccttttiiiioooonnnn dddd''''uuuunnnneeee ssssoooouuuussss----iiiimmmmaaaaggggeeee....

Une sous-image pour matlab n'est autre qu'une sous-matrice. Pour créer une sous image- dont les dimensions sont delta_lin et delta_col et dont le coin en haut à droite a pour coordonnées (lin, col) il suffit de saisir : Detail = ImageChocolat( lin : lin+delta_lin, col : col+delta_col ) ;

vérifiez cela en affichant l'image. Vous pouvez sélectionner le point en haut à droite par :

[lin, col] = round( ginput(1) ) ;

Vous pouvez aussi utiliser la fonction

imcrop (regardez comment vous en servir).

Travaux pratiques de traitement d'imageO. Strauss

Capteurs et traitement d'images3 M1 EEA

3333••••HHHH

IIIISSSSTTTTOOOOGGGGRRRRAAAAMMMMMMMMEEEE

DDDD

IIIIMMMMAAAAGGGGEEEESSSS

3333....1111••••TTTTrrrraaaannnnssssffffoooorrrrmmmmaaaattttiiiioooonnnn dddd''''uuuunnnn ttttaaaabbbblllleeeeaaaauuuu eeeennnn uuuunnnn vvvveeeecccctttteeeeuuuurrrr....

Pour pouvoir effectuer un histogramme, il faut transformer votre matrice image en un vecteur contenant toutes le valeurs de niveau de gris. Pour faire cette opération, créez un nouveau script Histogramme.m et saisissez : clear all ; close all ;

ImageChocolat = imread('Chocolat.jpg') ;

ImageChocolat = double(ImageChocolat) ;

[Nlin, Ncol] = size(ImageChocolat) ; % creation d'un vecteur de 0 de Nlin*Ncol elements

Vecteur = ImageChocolat(:) ;

La fonction hist(Vecteur,N) dessine l'histogramme de Vecteur sur N niveaux de gris. Déterminez un seuil global possible pour isoler les chocolats du fond blanc. Vous pouvez récuperer l'histogramme calculé en écrivant :

NiveauxDeGris = 0:255 ;

MonHistogramme = hist(Vecteur,NiveauxDeGris) ;

Réalisez un étirement puis une égalisation d'histogramme pour l'image des chocolats (mé- thode vue en cours). Vous essayerez aussi ces méthodes sur les images faiblement con- trastées disponibles pour ce TP. Essayez de calculer automatiquement le seuil en utilisant la méthode de Fisher (méthode vue en cours).

Le seuil ayant été déterminé dans la phase précédente, on peut obtenir une image binaire

de la façon suivante : seuil = ??? % vous donnez une valeur au seuil

ImageBinaire = zeros( Nlin, Ncol ) ;

for lin=1:Nlin for col=1:Ncol if( ImageChocolat(lin,col) < seuil )

ImageBinaire(lin,col) = 1 ;

end end end Pour afficher l'image binaire, il faut réduire la palette de couleurs : figure(22) ; image(uint8(ImageBinaire)) ; colormap(gray(2)) ; axis('image') ; Effectuer le travail à l'aide éventuellement d'un script, analysez le résultat en fonction du seuil choisi (faites varier les seuils).

3333....4444••••OOOObbbbtttteeeennnnttttiiiioooonnnn dddd''''uuuunnnneeee ffffoooorrrrmmmmeeee pppplllleeeeiiiinnnneeee....

Pour "boucher" les trous qui peuvent apparaître après le seuillage, on utilise un opé- rateur logique appelé fermeture morphologique. Une fermeture morphologique est une succession de deux opérations morphologiques de base qui sont •une dilatation qui grossit les formes blanches •une érosion qui grossit les formes noires (c'est une opération duale).

Travaux pratiques de traitement d'imageO. Strauss

Capteurs et traitement d'images4 M1 EEA

Faites des essais d'érosion et de dilatation.

ImageDilatee = bwmorph(ImageBinaire,'dilate') ;

ImageErodee = bwmorph(ImageBinaire,'erode') ;

ImageFermee = bwmorph(ImageBinaire,'close') ;

ImageOuverte = bwmorph(ImageBinaire,'open') ;

Vérifiez que la fermeture est bien obtenue par la succession d'une dilatation et une éro- sion. Que se passe-t-il si on fait 2 dilatations et deux érosions ? 3 ? expliquez le résultat. Vous pouvez aussi calculer les surfaces attribuées à chaque classe (fond / forme) grâce à la fonction bwarea(ImageDilatee) qui renvoie le nombre de pixels différents de 0. Remarque : les images que vous obtenez sont binaires (1 ou 0). Pour les afficher il faut les multiplier par 255 ou changer l'échelle de niveaux d'affichage (colormap). La fonction bwlabel(imb) permet de réaliser la segmentation de l'image c'est à dire de

marquer tous les pixels liés à une première forme par un 1 puis tous les pixels liés à

une 2° forme d'un 2 etc... La syntaxe est : [ImageDesLabels,NombreDeLabels] = bwlabel(ImageBinaire);

NombreDeLabels

est le nombre de formes trouvées. Regardez l'image

ImageDesLabels

et commentez. Pour associer une couleur à chaque nombre de forme, vous pouvez procéder ainsi : ImageColoree = ind2rgb(ImageDesLabels+1,[0 0 0;jet(NombreDeLabels)]); figure(2) ; imshow(ImageColoree); On peut récupérer les coordonnées de tous les pixels de la forme numéro n par la com- mande : [Coo_lin,Coo_col] = find(ImageDesLabels == n); Faites un script qui va créer une image (à niveau de gris) par chocolat isolé.quotesdbs_dbs28.pdfusesText_34