Images numériques

Il y a deux manières de décrire une image:
  • codage vectoriel: on décrit l'image par des formules mathématiques entre autres. Si vous avez contruit la parabole représentative de la fonction carrée sous geogebra, par exemple, il est facile de décrire l'image: il y a un repère orthonormé d'unité de longueur 20pixels et la courbe représentative de la fonction y=x^2. Ce type de codage est peu gourmand en mémoire mais ne s'adapte pas à une photo.
  • codage bitmap (carte des bips): l'écran d'un ordinateur est en fait une grille de petits pixels (pictures elements) dont on peut régler l'intensité lumineuse. Le codage bitmap consiste à lister pixel par pixel cette intensité lumineuse.
La résolution d'une image s'exprime en dpi (densité de pixels par inch^2). Plus elle est importante, plus il y a de pixels au centimètre carré. Si la dpi est insuffisante, l'image est pixellisée, c'est à dire qu'on voit les pixels.

La taille d'une image est le produit entre le nombre de lignes de pixels et le nombre de pixels par ligne (ou nombre de colonnes).

Les différents types de bitmap:
  • le bitmap Noir et blanc:
    On code chaque pixel avec 1 seul bit: 0 pour noir et 1 pour blanc.
    Le tableau de nombre obtenu s'appelle une matrice (on parle aussi de codage matriciel).
    Cette image comporte 8 lignes, 8 colonnes
    Sa définition est de …. pixels. Comme il faut 1 bit pour coder chaque pixel, Elle se code avec …. bits (si on admet qu'on connait sa taille).

    La compression RLE (Run Length Encoding)
    Cet algorithme de compression était particulièrement adapté à la compression des fax, dont de nombreuses lignes de pixels étaient blanches.
    exemple de compression:
    La ligne 0 passe de … bits à … bits (8 se code …… en binaire) donc un taux de compression de …%
    La ligne 1 passe de … bits à ……… bits donc un taux de compression de ……………%
    En pratique, seules les séquences comportant plus de trois répétitions sont compressées.
    exemple 2


  • le bitmap en niveau de gris:
    On choisit un nombre de bits servant à coder les différents niveaux de gris.
    Avec 2 bits on code 4 niveaux de gris.
    Avec 8 bits on code 256 niveaux de gris (de 0:noir à 255:blanc).
    Avec Python:
    a)Récupérez le fichier imageisn.py
    b)Vérifier que le shell est configuré pour Python V3.4
    c)Utiliser les fonctions fournies pour afficher la matrice correspondant à l'image fournie.
    d)Quelle est la taille de cette image? ……………
    e)Calculez le niveau de gris moyen des pixels (il faudra écrire un petit bout de code parcourant la matrice image pour calculer la moyenne des coefficients). …………….
    f)Augmentez le contraste de l'image en mettant à 255 tous les pixels supérieurs à 128 et à 0 tous ceux inférieurs à 128. On obtient ainsi une image en Noir et Blanc que l'on pourra afficher en utilisant les fonctions fournies.
    g)Pour aller plus loin, vous pourrez essayer de symétriser l'image.

    DEVOIR MAISON:
    L'image ci dessous a été cryptée pixel par pixel grace à un chiffrement linéaire.
    matrice2[i][j]=(23*matrice1[i][j])%256
    Pour la décrypter, vous devez utiliser le même sorte de transformation mais en remplaçant 23 par son inverse modulo 256 (c'est à dire le nombre k compris entre 0 et 255 qui vérifie k*23 %256 =1 )
    Vous trouverez ainsi le secret des meilleurs profs de maths du monde!

  • le bitmap couleur:
Sur les écrans cathodiques, chaque pixel est constitué de trois diodes (rouge, verte et bleue) dont on peut régler l'intensité. Les lumières émises s'ajoutent pour former tout le spectre des couleurs. Le codage RGB est un système de codage de la couleur dans lequel un nombre sur 8 bits code l'intensité de chaque composante (Rouge Verte et Bleue).
Par exemple, (128,0,255) code du …………….
Ces nombres sont souvent donnés en héxadécimal #8000FF.

Avec Python:
a)Utiliser les fonctions fournies pour afficher la matrice correspondant à l'image couleur fournie.
b)Quelle est la taille de cette image? ……………
c)Complétez la fonction composantebleu afin de construire l'image de Mario façon Warhol


Pour chaque pixel, on spécifie donc sa couleur par son code RGB. Le défaut c'est la place que prend un tel codage, car pour chaque pixel, il faut …………………bits pour donner sa couleur.

La méthode de compression Gif consiste à analyser l'image pour ne retenir au maximum que 256 couleurs différentes auxquelles on associe un nombre entre 0 et 255 (8 bits). C'est la palette. Pour chaque pixel, on code le numéro de sa couleur (ou de la couleur la plus approchante), ce qui n'utilise que 8 bits au lieu des 24 du RGB.

pour aller plus loin:
fichier code caché dans une image