Tp traitement d'image sous matlab -Traitement d'image - Télé

Tp traitement d'image sous matlab -Traitement d'image - Télé

Tp traitement d'image sous matlab -Traitement d'image - Télé

Télécharger PDF

Initiation au Traitement d'Image sous MATLAB

L'objectif de ce TP est de comprendre le fonctionnement de MATLAB et des outils de base qui serviront dans les TP suivants. Nous allons donc voir comment charger une image et effectuer quelques opérations fondamentales sur celle-ci.

Lecture et Affichage d'une Image

Nous vous avons fourni une image de route nommée "01D.ppm". Les étapes suivantes détaillent comment la manipuler dans MATLAB :

  1. Créer une variable contenant le chemin d'accès à l'image.
  2. Créer une variable contenant le nom de l'image.
  3. Utiliser la fonction help imread pour obtenir les propriétés et la documentation de cette fonction.
  4. Lire l'image "01D.ppm" en concaténant le chemin et le nom.
  5. Stocker l'image lue dans la variable ima.
  6. Observer le format de l'image lue dans le gestionnaire de variables de MATLAB (workspace).
  7. Afficher l'image avec imshow, puis dans une autre figure avec imagesc. Observer attentivement les différences d'affichage entre ces deux fonctions. imshow affiche les images en utilisant l'échelle de couleurs naturelle, tandis que imagesc met à l'échelle les données pour couvrir l'étendue complète de la carte de couleurs.
  8. Créer une deuxième variable, imad, contenant la même image convertie au format double. Ce format est souvent préféré pour les calculs intensifs car il offre une plus grande précision.
  9. Afficher l'image imad avec imshow et avec imagesc. Que se passe-t-il ? Les images en format double sont généralement interprétées par imshow comme étant dans la plage [0, 1].
  10. Diviser l'image imad par la valeur 255 (la valeur maximale pour un pixel en 8 bits). Refaire l'affichage. Cela normalisera les valeurs des pixels dans la plage [0, 1], ce qui est attendu par imshow pour les images de type double.
  11. Convertir l'image ima en niveaux de gris et la stocker dans imagray.
  12. Convertir l'image imad en niveaux de gris et la stocker dans imadgray.
  13. Comparer les deux images (imagray et imadgray). Ne pas oublier de multiplier imadgray par 255 avant la comparaison pour les ramener à la même échelle si nécessaire, ou travailler directement sur les plages normalisées.
  14. Sauvegarder l'image résultant de cette comparaison.

Propriétés et Analyse d'une Image

Cette section se concentre sur l'extraction d'informations et l'analyse des propriétés intrinsèques d'une image :

  1. Afficher la valeur du pixel situé aux coordonnées (232, 212).
  2. Afficher la dimension de l'image. Stocker le nombre de lignes (nl), le nombre de colonnes (nc) et le nombre de bandes/canaux (nb) dans des variables distinctes.
  3. Créer un vecteur nommé maxlig de taille égale au nombre de lignes (nl).
  4. Placer la valeur maximale de chaque ligne dans le vecteur maxlig en utilisant une boucle for.
  5. Effectuer la même opération pour le minimum (minlig) et la moyenne (meanlig) de chaque ligne, mais sans utiliser de boucle for, en privilégiant les fonctions vectorisées de MATLAB.
  6. Réaliser un tracé de ces trois vecteurs (max, min, moyenne par ligne) sur le même graphique pour visualiser leurs variations.
  7. Réaliser un tracé du maximum en fonction du minimum pour observer leur corrélation.
  8. Créer une fonction qui prend en entrée une image et qui retourne en sortie les vecteurs maxlig, minlig et meanlig, et qui réalise également le tracé associé.
  9. Calculer la moyenne, le maximum, le minimum et la somme de tous les pixels de l'image. Ensuite, effectuer les mêmes calculs pour la partie centrale de l'image (entre les coordonnées 200 et 400 sur les axes x et y).

Utilisation de Masques pour le Traitement d'Image

Les masques sont des outils puissants pour isoler ou modifier des régions spécifiques d'une image. Voici des exercices pratiques :

  1. Tracer l'histogramme de l'image en niveaux de gris (imadgray) pour visualiser la distribution des intensités de pixels.
  2. Appliquer un seuillage à l'image à une valeur de 0.7 pour créer un masque binaire (imask), puis afficher le résultat. Les pixels dont la valeur est supérieure à 0.7 seront généralement à 1, les autres à 0.
  3. Créer et afficher une nouvelle image (imadseuil) dans laquelle les pixels correspondant au masque sont mis à zéro.
  4. Créer et afficher une nouvelle image où seuls les pixels dont la valeur est comprise entre 0.3 et 0.7 sont mis à zéros.
  5. Créer un masque correspondant uniquement à la partie centrale de l'image (entre les coordonnées 200 et 400).
  6. Utiliser ce masque pour calculer la moyenne, le maximum, le minimum et la somme des pixels dans cette région centrale.

Filtrage et Opérations Morphologiques

Le filtrage permet d'améliorer la qualité d'image ou d'extraire des caractéristiques. Les opérations morphologiques modifient les formes des objets dans une image :

Filtrez l'image imadgray et affichez les résultats des opérations suivantes :

  1. Application d'un filtre moyenneur, d'un filtre Laplacien et d'un filtre de Sobel. Le filtre moyenneur lisse l'image, le Laplacien détecte les contours et le Sobel est utilisé pour la détection de bords.
  2. Application d'un filtrage médian. Ce filtre est efficace pour réduire le bruit "poivre et sel" tout en préservant les bords.
  3. Application d'une dilatation et d'une ouverture morphologiques. La dilatation étend les objets clairs, tandis que l'ouverture (érosion suivie de dilatation) permet d'éliminer de petits objets et de lisser les contours.

Fonctions MATLAB Essentielles

Pour réaliser les exercices précédents, voici une liste des fonctions MATLAB couramment utilisées en traitement d'image. Il est recommandé de consulter l'aide intégrée de MATLAB (en tapant help [nom_fonction]) pour comprendre leur fonctionnement détaillé :

  • imread : Lit une image à partir d'un fichier.
  • help : Affiche l'aide pour une fonction ou un sujet.
  • double : Convertit un tableau en type de données double-précision.
  • imshow : Affiche une image.
  • imagesc : Affiche une image en mettant à l'échelle les données pour la carte de couleurs.
  • axis : Contrôle l'échelle et l'apparence des axes.
  • colorbar : Affiche une barre de couleurs.
  • colormap : Définit la carte de couleurs pour l'affichage des images.
  • figure : Crée une nouvelle fenêtre graphique.
  • rgb2gray : Convertit une image couleur (RGB) en niveaux de gris.
  • size : Renvoie la taille des dimensions d'un tableau.
  • zeros : Crée un tableau de zéros.
  • ones : Crée un tableau de uns.
  • for : Structure de boucle pour itérer.
  • max : Trouve l'élément maximal d'un tableau.
  • min : Trouve l'élément minimal d'un tableau.
  • mean : Calcule la moyenne des éléments d'un tableau.
  • sum : Calcule la somme des éléments d'un tableau.
  • plot : Crée des graphiques 2D.
  • hold : Maintient les tracés actuels dans les axes.
  • hist : Crée un histogramme.
  • >, < : Opérateurs de comparaison (supérieur à, inférieur à).
  • true, false : Valeurs logiques.
  • fspecial : Crée des filtres prédéfinis (par exemple, pour moyenneur, Laplacien).
  • imfilter : Filtre une image avec un filtre multidimensionnel.
  • medfilt2 : Applique un filtre médian 2D.
  • imdilate : Effectue une dilatation morphologique.
  • imopen : Effectue une ouverture morphologique.

Foire Aux Questions (FAQ) sur le Traitement d'Image avec MATLAB

Qu'est-ce que le traitement d'image sous MATLAB ?
Le traitement d'image sous MATLAB est l'ensemble des techniques et outils utilisés pour analyser, manipuler et améliorer des images numériques. MATLAB offre une suite complète de fonctions pour des tâches telles que l'acquisition, la visualisation, la transformation, l'analyse et la compression d'images, rendant cette plateforme idéale pour la recherche et le développement dans ce domaine.
Quelle est la différence fondamentale entre imshow et imagesc pour l'affichage ?
Bien que les deux fonctions affichent des images, imshow est conçue pour afficher des images avec leurs valeurs de pixels réelles, en respectant leur type (par exemple, des entiers de 0 à 255 ou des doubles de 0 à 1). En revanche, imagesc (pour "image scale") met automatiquement à l'échelle les valeurs des pixels de l'image pour les faire correspondre à toute l'étendue de la carte de couleurs actuelle, ce qui est utile pour visualiser des données dont la plage de valeurs n'est pas standard.
Pourquoi est-il courant de convertir une image en niveaux de gris ?
La conversion en niveaux de gris simplifie l'analyse d'image en réduisant la complexité des données d'une image couleur (trois canaux : rouge, vert, bleu) à un seul canal d'intensité. Cette simplification est utile pour de nombreuses tâches de traitement où la couleur n'est pas une caractéristique discriminante essentielle, comme la détection de bords, la segmentation ou la reconnaissance de formes, permettant ainsi d'économiser des ressources de calcul.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne