M3201 – TD #1

Culture scientifique et
traitement de l'information S3


Rappel du TP #1

  • Toute information numérique (texte, son, image, vidéo) est encodée en binaire
  • Un fichier contient de métadonnées et les données, souvent compressées
  • Deux grands types d'images numériques : matricielles et vectorielles

Images matricielles (png, jpeg, gif, …)

  • Basé sur les pixels
  • Pas de calcul pour l'affichage (sauf pour la décompression)
  • Résolution finie
  • La taille du fichier dépend de la résolution de l'image, non de sa complexité (mais affecte le niveau de compression)

Images vectorielles (svg, eps, …)

  • Basé sur des primitives géométriques (segment, courbe, polygone, …)
  • Besoin de calculs pour l'affichage
  • Résolution «infinie»
  • La complexité de l'image affecte la taille du fichier

Compression des images

  • Plusieurs algorithmes de compression avec différents rapports qualité/taile du fichier
  • L'efficacité de la compression d'une image dépend fortement de l'information (entropie) de l'image
  • Vous ne savez pas encore comment ça marche

Représentation matricielle d'une image

Une image matricielle (en niveaux de gris) est représenté sous forme de matrice → tableau → bits.

Questions

  • Position d'un pixel dans la matrice ? Dans le tableau ?
  • Parcours des pixels d'une image ?
  • Voisinage d'un pixel ?
  • Extérieur de l'image ?
  • Et pour une image en couleur ?

Les espaces de couleurs

Il existe plusieurs modèles pour représenter les couleurs [] : RGB, RGBA, HSL, …

RGB

  • Rouge vert bleu (red green blue)
  • Synthèse additive
  • Pratique pour les écrans
  • On peut ajouter un canal (alpha) pour la transparence

HSL

  • Teinte saturation luminosité (hue saturation lightness)
  • Teinte : couleur dans l'arc-en ciel ; saturation : plus ou moins coloré ; luminosité : plus ou moins clair
  • Facile à manipuler pour combiner les couleurs
  • Il existe de fonctions mathématiques pour passer d'un espace à l'autre

YIQ (et YUV, YDbDr …)

  • Un canal pour la luminance, les deux autres pour la couleur
  • Facile de transformer en niveau de gris, adapté pour les télévisions

CMYK

  • Cyan magenta jaune noir (cyan magenta yellow key)
  • Synthèse soustractive
  • Utilisé dans l'impression.
  • Composante noir pour économiser l'encre.

Questions :

  • Distance entre les couleurs ?
  • Transformation RGB → niveau de gris ?

Rééchantillonage

Redimensionnement ou rotation d'un image → perte d'information

Exemple : faites plusieurs rotations (Shift+R) de 10° sur une image.

Pourquoi ?

Quand on fait une rotation, il y a de pixels perdus

Deux solutions à combiner :

  • Rotation inverse : on ne lance pas les pixels, on va les chercher
  • Interpolation : on rempli les pixels manquants avec son entourage. Plusieurs méthodes : interpolation par plus proche voisin, bilinéaire, bicubique…

Conclusion

  • La couleur est une perception humaine, difficile de représenter numériquement
  • Derrière chaque bouton il y a un algorithme
  • On fera du traitement des images avec JavaScript

Ressources

  • HIPR2 Image Processing Learning Resources [URL]
  • Documentation de GIMP [URL]
  • Cours de X. Heurtebise [URL]
  • Digital image processing, par R.C. Gonzalez et R.E. Woods [URL]