Académique Documents
Professionnel Documents
Culture Documents
Page 1 sur 4
3. Créer une image inverse en se basant sur la formule 255 – I(x,y) décrite en haut.
4. Créer et sauvegarder une figure qui montre l’image originale et l’image inversée
correspondante comme ci-dessous :
Page 2 sur 4
Une approche intuitive qu’on peut suivre pour assurer la conversion d’une image en couleurs
(RVB) en une image en niveaux de gris, et de :
1. Créer une image de mêmes dimensions que l’image originale, initialement rempli par
des zéros, pour cela, vous pouvez utiliser la fonction zeros de la bibliothèque numy.
Aussi, pour récupérer les dimensions d’une image, on peut utiliser la propriété
shape.
Exemple :
np.zeros((2,2)) créer une matrice de dimension 2x2 rempli de zéros
img.shape retourne le triple (hauteur, largeur, nombre de canaux) d’une image.
2. Itérativement, remplacer les valeurs des pixels de l’image crée par la moyenne issue
des 3 canaux de l’image originale selon la formule suivante :
I ng (i, j)=[ I R ( i , j ) + I V ( i , j ) + I B ( i, j ) ] /3
3. Afficher l’image résultante
Q1. En se basant sur ces étapes, écrire la fonction def rgbtogray(image) qui prend comme
entrée une image en couleur (Mode RVB), et qui retourne l’image converti en niveaux de
gris.
Q2. Afficher sur une seule figure, l’image originale et l’image converti. Que remarquez-vous ?
La conversion RGB vers niveaux de gris ne se fait généralement pas par une moyenne simple
des trois canaux (rouge, vert, bleu). Elle utilise souvent des coefficients pondérés pour mieux
refléter la perception humaine de la luminosité. Par exemple, la formule de luminance qui
prend en compte la sensibilité de l'œil humain aux différentes couleurs est donnée par :
I ng ( i , j )=0 . 299 × I R ( i , j )+ 0 .587 × I V ( i , j ) +0 .114 × I B ( i , j )
Cette formule donne plus de poids au canal vert et moins au canal bleu. C’est une
représentation de la conversion de couleur en niveaux de gris qui prend en compte la
luminance perçue, ou la luminosité, des différentes couleurs par l'œil humain. Cette formule
est basée sur la manière dont les cônes photorécepteurs de l'œil humain réagissent
différemment aux longueurs d'onde correspondant au rouge, au vert et au bleu.
Q3. Modifier la fonction rgbtogray(image) en introduisant les coefficients de la formule 2.
Commenter.
Page 3 sur 4
Figure 1. Image camerman.jpg et son histogramme
Q2. Ecrire une fonction def histogramme2(image) qui calcul l'histogramme d'une image en
couleur, puis retourne l'histogramme calculé. Le script doit afficher sur la même figure
l'image originale, et les histogrammes correspondants aux trois canaux (Rouge, vert et Bleu),
comme illustre la figure 2.
Indications :
La fonction Axes.bar() du module axes de la bibliothèque matplotlib est utilisée pour créer
un tracé à barres.
Syntaxe : Axes.bar(self, x, height, width=0.8, bottom=None, *, align='center', data=None,
**kwargs)
Paramètres : cette méthode accepte les paramètres suivants décrits ci-dessous :
x : Ce paramètre est la séquence de coordonnées horizontales de la barre.
height : Ce paramètre est la(les) hauteur(s) des barres.
width : Ce paramètre est un paramètre facultatif. Et c'est la(les) largeur(s) des barres
avec la valeur par défaut 0.8 .
bottom: ce paramètre est également un paramètre facultatif. Et ce sont les coordonnées
y des bases des barres avec la valeur par défaut 0 .
alighn: ce paramètre est également un paramètre facultatif. Et il est utilisé pour
l'alignement des barres sur les coordonnées x.
Page 4 sur 4