Differences between revisions 4 and 5
Revision 4 as of 2013-12-11 07:33:08
Size: 1394
Editor: 178
Comment:
Revision 5 as of 2013-12-11 07:39:33
Size: 2142
Editor: 178
Comment:
Deletions are marked like this. Additions are marked like this.
Line 27: Line 27:
 * '''donnees''' est une liste contenant les valeurs des pixels, en fonction du format
  * pour ''couleur'', chaque pixel correspond à 3 valeurs, pour les trois composantes rouge, vert, bleu; le pixel de coordonnées (x,y) commence donc à l'indice (largeur×y+x)×3
  * pour ''gris'', chaque pixel correspond à une valeur qui est son niveau de gris
  * pour ''bitmap'', huit pixels consécutifs correspondent à une valeur du tableau (un bit par pixel)

Le module '''pnm''' fournit en particulier les fonctions suivantes:

 * '''pnm.lire_pnm(nom_fichier)''' lit un fichier et renvoie la structure de données associée
 * '''pnm.afficher_ppm(image)''' affiche une image (supposée être au format ''couleur'') dans une fenêtre Tkinter

TP : structures de données et images

C’est la séance 1B2 de la formation 2013-2014.

Il s'agit de manipuler à la main (en Python) des structures de données pour représenter des images. On va suivre le format d'image PNM, qui est assez simple pour tout faire soi-même.

Pour référence:

  • pinklady-ascii.ppm, un fichier d'exemple;

  • pnm.py, une implémentation de toutes les opérations sur ce format que l'on évoque dans la suite (mais le but est de le faire vous-mêmes).

Vous pouvez utiliser les fonctions définies dans ce fichier en commençant par importer le module:

   1 import pnm

Structure de donnée utilisée

On va tout représenter avec les structures de données élémentaires de Python: nombres, chaînes de caractères, listes, dictionnaires.

Une image est représentée par un dictionnaire contenant les entrées suivantes:

  • format est une chaîne de caractères, dont la valeur peut être

    • couleur pour une image en couleurs (on utilisera principalement ce cas-là)

    • gris pour une image en niveaux de gris

    • bitmap pour une image en noir et blanc

  • largeur est un entier qui indique le nombre de pixels en largeur

  • hauteur est un entier qui indique le nombre de pixels en hauteur

  • donnees est une liste contenant les valeurs des pixels, en fonction du format

    • pour couleur, chaque pixel correspond à 3 valeurs, pour les trois composantes rouge, vert, bleu; le pixel de coordonnées (x,y) commence donc à l'indice (largeur×y+x)×3

    • pour gris, chaque pixel correspond à une valeur qui est son niveau de gris

    • pour bitmap, huit pixels consécutifs correspondent à une valeur du tableau (un bit par pixel)

Le module pnm fournit en particulier les fonctions suivantes:

  • pnm.lire_pnm(nom_fichier) lit un fichier et renvoie la structure de données associée

  • pnm.afficher_ppm(image) affiche une image (supposée être au format couleur) dans une fenêtre Tkinter

WikISN: TP format PNM (last edited 2016-03-01 13:25:51 by LionelVaux)