Exercice 1 : Recherche de végétation dans une image multispectrale Le but de cet exercice est d’identifier les régions contenant des végétations plus au moins importantes dans une image multispectrale par un seuillage d'une carte d'indice de végétation connue sous le nom de NDVI (Normalized Difference Vegetative Index). La carte NDVI d'un ensemble de données multispectrales indique la densité de la végétation dans diverses régions de l’image. La valeur NDVI est calculée en utilisant les images des bandes spectrales proches infrarouges (NIR) et rouge visible (RED) comme le montre la formule suivante. 𝑁𝐼𝑅 − 𝑅𝐸𝐷 𝑁𝐷𝑉𝐼 = 𝑁𝐼𝑅 + 𝑅𝐸𝐷 La valeur NDVI d'un pixel est un scalaire compris entre -1 et 1. Les pixels des régions où la végétation est saine ou dense reflètent davantage la lumière NIR, ce qui se traduit par des valeurs NDVI élevées. Les pixels des régions où la végétation n'est pas saine ou les terres stériles absorbent davantage de lumière NIR, ce qui se traduit par des valeurs NDVI faibles ou négatives. Ainsi, on peut identifier la végétation d'une région comme étant dense, modérée, clairsemée ou inexistante. Voici la plage de valeurs NDVI typique pour chaque type de région : R1 : Végétation dense -> Supérieure ou égale à 0,6 R2 : Végétation modérée -> Dans l'intervalle [0,4, 0,6) R3 : Végétation éparse -> Dans l'intervalle [0.2 0.4) R4 : Pas de végétation -> Inférieure à 0.2 On dispose d’une image LANDSAT qui couvre une partie de Paris nommée « Paris.jpg » présentée à la figure 1. On souhaite identifier les régions où il y a de la végétation. Le fichier initial a été modifié pour garder que 3 canaux dont le premier contient proche Infrarouge, le deuxième est le rouge du visible et le troisième est le canal vert du visible. Les étapes sont : 1. Chargez l’image « Paris.jpg » 2. Récupérez les canaux NIR et RED. Pour la suite du clacul, les valeurs des différents canaux doivent être comprises entre 0 et 1, pour celà, il faut utiliser la fonction im2single pour convertir les valeurs des pixels. 3. Calculez la matrice correspondant à l’indice de végétation NDVI. Les valeurs de la matrice obtenue sont comprises ente -1 et 1, pour les afficher en tant qu’image en niveaux de gris, on utilise l’instruction suivante : imshow(NDVI,'DisplayRange',[-1 1]) 4. Il s’agit de segmenter la carte NDVI en 4 régions (R1,R2,R3 et R4) en appliquant un multiseuillage. Les seuils représentent les valeurs typiques pour identifier les régions qui contiennet soit de la végétation dense, modérée, éparse ou aucune végétation. a. Définissez une palette de couleur comme suit : R1 en vert, R2 en bleu, R3 en jaune et R4 en rouge. b. Affichez l’image avec la palette de couleur proposée et avec des annotations comme le montre la figure 2. 5. Calculez le pourcentage d’occupation de chacune des régions et affichez les pourcentages dans la légende de la figure 2 6. Appliquez la segmentation par kmeans. Comparez les résultats avec la segmentation par multi seuillage. Que pensez- vous ?
Mme I.BENMILOUD - ENSMR 1
Traitement d’images - Année 2022-2023
Figure 1 : « Paris.jpg » Figure 2 : Types de végétation sur la région de Paris
Exercice 2 : Comptage d’objets
Parmi les applications fondamentales de la segmentation d’images est le comptage et l’analyse d’objets présents dans l’image. Dans cet exercice, il s’agit d’appliquer dans un premier temps une étape de prétraitement pour améliorer la qualité de l’image, il s’ensuit alors la phase de segmentation pour identifier et analyser les objets présents à savoir l’extraction des divers paramètres tels que l'axe principal, l'axe mineur, l'excentricité, la surface et le périmètre etc.. Ces paramètres permettent de classer les objets dans l’image. L’image utilisée dans cet exercice est nommée « rice.png », il s’agit d’analyser les grains de riz individuels en déterminant la surface et autres calculs statistiques pour une classification automatique des grains de riz. Le travail à faire : 1. Chargez l’image «rice.png» du toolbox Matlab (Figure 1). 2. Proposez un prétraitement pour améliorer la qualité de l’image. 3. Appliquez une binarisation. La figure 2 montre le résultat obtenu. 4. Supprimez les objets dont la superficie est inférieure à 50. La figure 3 montre le résultat obtenu. La figure 4 illustre les objets supprimés qui apparaissent en vert. 5. Cherchez toutes les composantes connexes (objets) dans l’image binaire en utilisant la fonction bwconncomp. Cette dernière retourne une structure contenant entre autre l’attribut NumObjects et PixelIdxList. a. Combien d’objets (grains de riz) sont présents dans l’image binaire. b. Affichez le grain dont le label est égal à 30 comme le montre la figure 5 c. Affichez également dans la même image le grain de riz dont le label est égal à 20 (Cf. la figure 6) d. Affichez les composantes connexes en fausse couleur comme le montre la figure 7. 6. Calculez des caractéristiques de chaque composante connexe telle que la surface, l’excentricité etc.. en utilisant la fonction regionprops. Affichez l’histogramme des surfaces des grains de riz.