Aller au contenu

Entraînement sur le thème Images Numériques

1) La résolution d'une image est le nombre de pixels qu'elle contient. Quelle est la résolution en mégapixels (millions de pixels) d'une image de 2000 pixels de largeur par 4000 pixels de hauteur ?

Solution

Le nombre de pixels est le résultat de longueur x largeur, donc ici 2000 x 4000 = 8 000 000 soit une résolution de 8 mégapixels

2) Donnez une représentation avec des nombres de l'image en noir et blanc suivante, qui fait 6 pixels de largeur et 3 de hauteur (pas besoin de respecter un format précis) :

Solution

Si on prend 0 pour noir et 1 pour blanc (mais on peut choisir l'inverse) :

1 0 1 1 1 0
0 0 0 1 0 1
1 0 1 0 1 1

3) Si on utilise des valeurs entre 0 et 255 pour le rouge, le vert et le bleu pour représenter une couleur, par quel nombres va-t-on représenter :

  • le noir :
  • le blanc :
  • le vert :

Solution

Les valeurs sont des valeurs de luminosité dans chaque couleur.

Donc pour le noir, il n'y a aucune luminosité, le code est 0 0 0

Pour le blanc, toutes les luminosités sont au maximum, le code est 255 255 255

Pour le vert, on met le rouge et le bleu à 0 donc le code est 0 255 0

Vous pouvez vous entraîner à voir comment marche le code RGB en testant ci-dessous :

Rouge:
Vert:
Bleu:
rouge:0 vert:0 bleu:0
  Sorry, this page requires HTML5 canvas support

4) On veut passer d'une image en couleur à une image en niveaux de gris. Si un pixel a R,V,B comme valeurs de rouge, vert et bleu, quelle formule peut-on utiliser pour calculer les nouvelles valeurs R2, V2, B2 correspondant au pixel gris ?

  • R2 =
  • V2 =
  • B2 =

Solution

Un pixel gris sera codé par la même valeur de rouge,vert,bleu entre 0 0 0 (le noir) et 255 255 255 (le blanc).

Pour avoir une luminosité équivalente au pixel de départ en couleur (R, V, B) on peut prendre comme valeur la moyenne des trois : M = (R+V+B)/3 et définir la couleur grise par (M, M, M)

Ainsi un pixel de couleur sombre sera transformé en gris sombre, et de couleur claire en gris clair.

L'image de pomme sur laquelle on a travaillé deviendra :

5) Que fait le code python suivant comme opération sur une image ? Est-ce que vous voyez un bug qu'il pourrait provoquer ?

for i in range(nb_ligne):
    for j in range(nb_colonne):
        rouge,vert,bleu = image.getpixel((i,j))
        image.putpixel((i,j),(rouge + 20, vert + 20, bleu + 20))

Solution

Ce code augmente de 20 les valeurs de rouge,vert,bleu de chaque pixel. Cela les rapproche du blanc donc l'image sera éclaircie (et si on diminue toutes les valeurs elle sera assombrie).

Le bug est qu'il faudrait faire attention à ce que les valeurs ne dépassent pas 255.

À partir de cette image :

On obtient :

6) On considère l'algorithme de compression suivant pour un tableau de nombre :

  • arrondir chaque nombre à la dizaine inférieure
  • puis, si plusieurs nombres qui se suivent sont égaux, les remplacer par la paire (nombre, nombre de fois qu'il est répété). Par exemple 7 7 7 devient (7, 3).

Appliquez l'algorithme sur le tableau de nombres suivants : 127 125 129 130 110 111 118 119 117

Est-ce que cet algorithme est une compression sans perte ou avec perte ? Justifiez.

Solution

En appliquant les étapes on passe de :

127 125 129 130 110 111 118 119 117

à :

120 120 120 130 110 110 110 110 110

puis :

(120, 3) 130 (110, 5)

Cette compression est avec perte car on a perdu de l'information en simplifiant le tableau, et on ne peut pas revenir au tableau de départ juste avec le tableau compressé.

7) Donnez quatre informations qu'on peut trouver dans les métadonnées EXIF d'un fichier de photo.

Solution

On peut trouver, si ces informations sont ajoutées au fichier par l'appareil:

  • la date et heure de la prise de vue
  • le modèle du téléphone ou appareil photo
  • les réglages de l'appareil
  • la géolocalisation de la prise de vue (coordonnées GPS)

8) Les photosites d'un capteur d'appareil photo ne peuvent détecter qu'une luminosité plus ou moins forte. Comment est-ce qu'on fait pour capter une photographie en couleur ?

Solution

Un filtre soit rouge, soit vert, soit bleu est placé devant chaque photosite du capteur, qui ne laisse passer que la lumière rouge, verte ou bleue. Les pixels de couleurs sont ensuite recomposés à partir des photosites rouge, vert et bleu.

9) Un capteur de téléphone portable est significativement plus petit que celui d'un appareil photo. Comment est-ce que les téléphones compensent pour essayer de produire des bonnes photos ?

Solution

Les téléphones utilisent beaucoup d'algorithmes de transformation d'image pour en améliorer la qualité, et combinent aussi les images de plusieurs prises de vue successives.

10) Dans un logiciel de traitement d'image, on peut modifier les valeurs des pixels en suivant une courbe choisie comme ceci. Chaque valeur de rouge, vert, bleu entre 0 et 255 sur l'axe des abscisses est transformée en la valeur lue sur l'axe des ordonnées sur la courbe en S. Par exemple sur la courbe suivante 60 est transformé en 40.

Quel effet aura cette transformation sur l'image ? Justifiez.

Solution

Cette transformation diminue les valeurs qui sont déja en dessous de la moyenne, et augmente les valeurs qui sont au dessus de la moyenne. Elle augmente donc le contraste de l'image (les clairs deviennent plus clairs, les sombres plus sombres).

L'image de pomme suivante :

Devient :

11) Que fait le code suivant sur une image ?

for i in range(nb_ligne):
    for j in range(nb_colonne):
        rouge_gauche, vert_gauche, bleu_gauche = image.getpixel((i,j-1))
        rouge,vert,bleu = image.getpixel((i,j))
        # abs est la fonction valeur absolue : abs(3) vaut 3, abs(-3) vaut 3 aussi
        difference_rouge = abs(rouge_gauche - rouge)
        difference_vert = abs(vert_gauche - vert)
        difference_bleu = abs(bleu_gauche - bleu)
        if difference_rouge + difference_vert + difference_bleu > 40:
            image.putpixel((i,j), (0,0,0))
        else:
            image.putpixel((i,j), (255,255,255))

Et quel petit bug contient-il ?

Solution

Ce code récupère pour chaque pixel les valeurs de couleur du pixel voisin à gauche. Puis si ces valeurs ont des différences sur le rouge, vert, bleu qui au total dépassent un seuil (ici 40), on met le pixel en noir, sinon en blanc.

Cela permet d'obtenir les contours d'une image. Par exemple cette image de pomme :

Devient :