2ISEOC Institut Supérieur d’Informatique
Exercice 5 : analyse et traitement d’images
On se propose d’analyser et de traiter deux séries de N images chacune (N=24). Les images
sont considérées aux niveaux de gris. Une image aux niveaux de gris consiste à une matrice
2D [L][C] avec L=1152 et C=2048.
On suppose qu’on dispose de deux cœurs logiques (threads) sur notre plateforme cible.
Le programme à développer permet de :
- définir deux tableaux de matrices de taille N. Les différentes valeurs des matrices sont
définies aléatoirement entre 0 et 255.
- effectuer le traitement du premier tableau en parallèle avec l’affichage du message « thread
n°… : bonjour de la 1ere section ».
- effectuer le traitement du second tableau en parallèle avec l’affichage du message « thread
n°… : bonjour de la 2eme section ».
Le traitement des matrices consiste à :
- afficher le message « thread n°… : traitement de la 1ere série d’images ».
- calculer la moyenne des différentes valeurs de chaque matrice et la stocker dans une case
d’un tableau de taille N (tableau qui va contenir les moyennes de toutes les matrices). La
moyenne permet de définir la luminosité de l’image.
- calculer les écart-types des images selon la formule suivante et les stocker dans un tableau
de taille N. L’écart-type permet de définir le constraste de l’image (quantifier les écarts par
rapport à la moyenne).
1
𝐶 𝑀 𝑖, 𝑗 𝑀𝑜𝑦
𝐿. 𝐶
-réaliser le seuillage de l’image. Le seuillage permet de transformer une image aux niveaux de
gris à une image dont les valeurs de pixels ne peuvent avoir que les valeurs 255 (blanc) ou 0
(noir). Le seuil est égale à 123.
1. Proposer le code parallèle correspondant et mesurer le temps d’exécution.
2. comment peut-on rajouter la clause nowait et aura elle des conséquences significatives
sur les performances du code ?