Aller au contenu

Partie 2 : Taille, traitement et formats d'images


La taille en octets d'une image non compressée se calcule ainsi :

Taille (octets)=largeur×hauteur×3\text{Taille (octets)} = \text{largeur} \times \text{hauteur} \times 3

(3 octets par pixel pour le codage RVB sur 24 bits)

UnitéÉquivalence
1 octet (o)8 bits
1 kilo-octet (ko)1 024 octets
1 méga-octet (Mo)1 024 ko ≈ 1 million d'octets
1 giga-octet (Go)1 024 Mo ≈ 1 milliard d'octets

Un filtre est un traitement qui modifie les valeurs des pixels d'une image :

FiltreAction
Niveaux de grisRemplacer chaque pixel par la moyenne de ses composantes RVB
NégatifInverser chaque composante : nouvelle valeur = 255 − ancienne valeur
LuminositéAjouter ou soustraire une valeur à chaque composante
ContrasteAccentuer les différences entre pixels clairs et sombres
FlouRemplacer chaque pixel par la moyenne de ses voisins
Rouge seulMettre à zéro les composantes V et B, garder uniquement R

Réduire une image consiste à supprimer des pixels (sous-échantillonnage). Agrandir une image consiste à ajouter des pixels en interpolant les valeurs des pixels voisins. L'agrandissement entraîne une perte de netteté (image « pixelisée »).

# Convertir une image en niveaux de gris
from PIL import Image
img = Image.open("photo.jpg")
largeur, hauteur = img.size
for x in range(largeur):
for y in range(hauteur):
r, g, b = img.getpixel((x, y))
gris = (r + g + b) // 3
img.putpixel((x, y), (gris, gris, gris))
img.save("photo_gris.jpg")

Les images non compressées occupent beaucoup d'espace. Une simple photo de smartphone (12 Mpx) pèse près de 35 Mo sans compression ! La compression réduit la taille du fichier pour faciliter le stockage et le transfert.

TypePrincipeQualitéFormats
Sans perte (lossless)Réduit la taille sans perdre d'information. L'image reconstruite est identique à l'originale.ParfaitePNG, BMP (non compressé), TIFF
Avec perte (lossy)Supprime des détails invisibles ou peu visibles à l'œil. L'image reconstruite diffère légèrement de l'originale.Légèrement dégradéeJPEG
  • Compression : aucune (image brute, non compressée).
  • Qualité : parfaite (aucune perte).
  • Poids : très lourd (taille = largeur × hauteur × 3 octets + en-tête).
  • Usage : rarement utilisé aujourd'hui en raison de sa taille, mais utile pour comprendre le stockage brut des pixels.

Le format JPEG utilise une compression avec perte. On peut régler le taux de compression :

  • Faible compression (qualité élevée) = haute qualité mais fichier volumineux
  • Forte compression (qualité basse) = fichier léger mais qualité dégradée (artefacts visibles)