D e v o i r M a i s o n d I n f o r m a t i q u e



Documents pareils
Formats d images. 1 Introduction

TD : Codage des images

Hiver 2013 IMN 259. Introduction à l analyse d images. Par Pierre-Marc Jodoin

TP SIN Traitement d image

Voici quelques-unes des questions auxquelles répond cette présentation.

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

1 Représentation d une image

Analyse d images. Edmond.Boyer@imag.fr. Edmond Boyer UFRIMA 1

Traitement numérique de l'image. Raphaël Isdant

Utiliser le logiciel Photofiltre Sommaire

INFO 2 : Traitement des images

Création de maquette web

Cours de numérisation sur Epson Perfection

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

FORMATS DE FICHIERS. Quels sont les différents types d informations numériques dans un document multimédia?

Plan d études. Traitement visuel 2D. Techniques d intégration multimédia HU. legault/2d/ 1-2-2

TP : Gestion d une image au format PGM

Merci de suivre les indications suivantes afin de créer votre compte membre :

Les images et les animations sur le web. Guérineau Chloé BTS2 Année 2001/2012

Optimiser les images pour l affichage sur votre site

nom : Collège Ste Clotilde

MANUEL TBI - INTERWRITE

Structure du format BMP, sa lecture, sa construction et son écriture

Sur trois couches, on obtient donc 2563 = de couleurs, soit 24bpp (Bit Per Pixel).

Codage d information. Codage d information : -Définition-

Initiation à linfographie

Les images numériques. 1. Le dessin vectoriel

Chapitre 22 Optimisation pour diffusion à l'écran, pour le web

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Projet Gestion des Formats de Fichier

DM 1 : Montre Autoquartz ETA

GESTION DU LOGO. 1. Comment gérer votre logo? Format de l image Dimensions de l image Taille de l image 9

1 Comment faire un document Open Office /writer de façon intelligente?

Outils permettant la diffusion de l information. Un point sur le droit numérique

1. Structure d'un programme FORTRAN 95

Synthèse d images Edmond Boyer

Représentation d un entier en base b

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Comment optimiser dans ImageReady?

STAGE IREM 0- Premiers pas en Python

Projet Matlab : un logiciel de cryptage

Catégories de format d'optimisation

Spétechs Mobile. D e r n i è r e m i s e à j o u r : s e p t e m b r e

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

Usage des photos pour Internet et pour la presse

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

1 Lecture de fichiers

Open-Sankoré. Mise en route. Guide utilisateur Février 2013 NTICE (E. S.)

Petit guide d utilisation Prezi

Réalisez votre propre carte de vœux Éléctronique

Spétechs Mobile. D e r n i è r e m i s e à j o u r : a o û t 2014

Spécifications Techniques - Tablettes

Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?

Formats de fichiers adaptés à l'archivage électronique à moyen et long terme

Optimisation et formats d images standards pour le Web Par Thierry Goulet Web Designer, ministère de la Sécurité publique. Plan de conférence

Gestion de gros fichiers binaires (images) en APL*PLUS III

FAQ Questions sur la «signature électronique»

Banque d images SVT. Créer et utiliser une banque d images avec Picasa 2. Version anglaise -Windows 98. Banque photo en SVT : page 1 /14

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Sommaire. Images Actives Logiciel libre développé par le CRDP de l académie de Versailles 2 Rue Pierre Bourdan Marly le Roi

Adobe Photoshop. Bonnes pratiques pour une utilisation professionelle CHAPITRE 7

Formats de fichiers pris en charge

Pop-Art façon Roy Liechtenstein

TP 1. Prise en main du langage Python

4/10. ext. MODE MODE. graphique. format ENREGISTREMENT. graphique 6/10 4/10 6/10. Cours E.Faÿs

L espace de travail de Photoshop

Introduction à MATLAB R

1 Introduction au codage

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Créer des documents interactifs

Comment obtenir des ebooks sur le Reader

2 Comment fonctionne un ordinateur, dans les grandes lignes

Google Documents permet d élaborer un questionnaire, de le diffuser sur le net pour ensuite le dépouiller.

MÉDICLICK! STUDIO 3 GESTION DES IMAGES ET PIÈCES JOINTES SOMMAIRE

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Supports. Images numériques. notions de base [1]

Ateliers Bureautique et Internet

Spécificités techniques JANVIER 2013

Guide d usage pour Word 2007

Utilisation du logiciel ImageJ gratuit

Leçon N 3 Quelques logiciels utiles

«Petit guide d utilisation Prezi» par Marc Nolet

Stockez et créez vos documents

Le Network File System de Sun (NFS)

SpeechiTablet Notice d utilisation

Comment échanger des données (fichiers) en format «STANDARD» lisibles par tous, quelque soit le programme et la version utilisés

Licence Sciences et Technologies Examen janvier 2010

1.1 L EXPLORATEUR WINDOWS

Maintenir un service de traitement de son ou d image d ordinateur

La mémoire. Un ordinateur. L'octet. Le bit

Canon Mobile Printing Premiers pas

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

formats mytamedia.ch Maxi Skyscraper Dimensions en pixels 245 x 600 Poids max. en Ko 70 CPM CHF 85 CPM ROS CHF 75

Prise en main du logiciel. Smart BOARD Notebook 10

Sommaire. 2. Utiliser la télécommande Télécommande Administrateur Télécommande Utilisateur Échanger une télécommande...

Prise en main du module Open office Impress / Présentation

Chapitre 4 Pierre, papier, ciseaux

Tutoriel BLOGGER. Pour vous donner une idée, voici un exemple de blog :

Transcription:

PCSI A Informatique Lycée Brizeux - année 2013-2014 D e v o i r M a i s o n d I n f o r m a t i q u e M a n i p u l a t i o n d i m a g e s m a t r i c i e l l e s L objectif du DM est la manipulation d images au format matriciel à l aide de Python. Pour les besoins du DM, il est fortement recommandé d installer GIMP qui permet de manipuler des fichiers au format PBM. Le logiciel de traitement d image GIMP est téléchargeable à l adresse http://www.gimp.org/downloads/ Par ailleurs, nous utiliserons le module PIL à l occasion de ce DM. Celui-ci est inclus dans la distribution WinPython que vous avez installée. Instructions Vous devez envoyer à ndlr@cpge-brizeux.fr un dossier zippé dm info images nom prénom.zip dans lequel figurent : les différents scripts demandés ; une image-test utilisée pour tester les scripts du paragraphe 3 ; les images obtenues à l aide des scripts. Le dossier zippé doit être envoyé avant le jeudi 16 janvier minuit. Par ailleurs, vous remettrez vendredi 17 janvier les réponses aux exercices figurant dans le DM. I Représentation d une image au format matriciel Une image peut être représentée à l aide d une matrice de couleurs (bitmap) dont les dimensions correspondent aux dimensions du quadrillage de l image en pixels (picture elements) et dont chaque coefficient précise la couleur du pixel correspondant du quadrillage. Les formats les plus connus d images bitmap sont JPEG, BMP, GIF, TIFF et PNG. La résolution de l image dépendra grandement du quadrillage. En zoomant suffisamment une image au format matriciel, on voit apparaître la trame sous la forme d une mosaïque dont chaque élément est un carré de couleur uniforme : c est le pixel! Voir Fig.2. Les colonnes de la trame sont numérotées de gauche à droite ; quant aux lignes elles sont numérotées de haut en bas 1. Un pixel de la trame est donc repéré par un couple (i, j) où i et j sont respectivement les numéros de la colonne et de la ligne sur lesquelles se trouve le pixel. Selon le type de format de l image bitmap, la palette de couleurs est encodée sur un certain nombre de bits, appelée profondeur dans les attributs d une image. Ainsi dans le cas d une image en noir et blanc, la palette de couleurs est encodée sur 1 bit : le bit à 0 encode le «noir» et le bit à 1 encode «blanc», en règle générale. Dans le cas d une image en noir et blanc, les valeurs possibles des coefficients de la matrice de couleur de l image bitmap sont donc 0 et 1. Exercice 1. L image à la figure 1 est de dimension 249 244 et de profondeur 8. (a) Quelle est la taille attendue en ko de l image? (b) Comment expliquez-vous qu en réalité la taille en ko de l image est 18.4? 1. Dans le cas du format BMP, les pixels de la trame sont décrits en partant du coin en bas à gauche. Les lignes sont donc numérotées de bas en haut 1

Figure 1 Image au format gif de dimension 249 244. II Manipulation d images au format PBM 1. Description du format Le format PBM (portable bitmap file format ) est un format d images bitmap en noir et blanc qui a été développé par Jef Poskanzer 2. Contrairement à d autres formats d image, il n y a pas de compression de l information. On peut très facilement définir une image au format PBM dans un fichier texte au format ascii. Un tel fichier comprend : le préambule de l image dans lequel figurent : la lettre magique P1 suivie d un retour à la ligne ; la largeur de l image en pixels (en base 10) suivie d un espace ; la hauteur de l image en pixels (en base 10) suivie d un retour à la ligne. la trame de l image : celle-ci est décrite ligne par ligne, chaque pixel de la trame étant représenté par le caractère ascii 0 ou 1, 0 pour blanc et 1 pour noir. À noter que les espaces ou les retours à la ligne figurant dans la trame ne sont pas pris en compte. On peut aussi faire des commentaires qui sont alors précédés d un #. Un exemple de tel fichier est donné Fig.3. On peut facilement éditer le source d un tel fichier à l aide d un éditeur de textes standard. Pour la visualisation graphique d un tel fichier, on peut utiliser GIMP qui nous permet de le convertir dans d autres formats d image plus communs. L image que le fichier encode est représentée Fig.4. L image a été volontairement agrandie d un facteur 10 pour être visible. Remarque : 2. à qui on doit également les formats PGM et PPM. 2

Figure 2 Zoom de l image de la figure Fig.1. il est d usage que le nombre de caractères de chaque ligne du fichier au format PBM soit limité à 70. Ce n est pas une nécessité pour la lisibilité du fichier par un logiciel de traitement d images tel que GIMP ; on peut aussi définir une image PBM en format binaire. D ailleurs le module PIL (voir plus loin) permet de manipuler entre autre des fichiers au format PBM, PGM et PPM écrits en binaire. 2. Un exemple d image au format PBM générée en Python Nous avons vu dans un précédent TP comment manipuler à l aide de Python un fichier texte en lecture et/ou en écriture. Pour écrire un fichier texte au format PBM, il suffit donc de reproduire ce que nous avions fait lors de ce TP. Voici un exemple de script Python permettant de générer une image au format PBM. n =100 # ouverture en écriture du fichier source image_source = open (" carre. pbm ", w ) # Préambule image_source. write ( P1\n ) image_source. write ( str (n)+" "+ str (n)+ \n ) # trame de l image for i in range (n) : # création de la ligne i de la trame ligne_trame = for j in range (n) : ligne_trame = ligne_trame + 1 ligne_trame = ligne_trame = ligne_trame + \n image_source. write ( ligne_trame ) # fermeture du fichier source image_source. close () Exercice 2. Exécutez le script précédent. Quelle est la taille du fichier généré? Lire le fichier obtenu à l aide de GIMP et à l aide de la fonction Export As convertissez le fichier au format 3

Figure 3 Exemple de fichier au format PBM édité avec un éditeur de textes. PBM en choisissant l option formatage des données brut qui apparaîtra. Vous avez obtenu le binaire du fichier. Quelle est la taille du binaire obtenu? Comment l expliquez-vous? N.B. Une image binaire au format PBM est lisible avec le module PIL de Python. 3. Exercices L objectif des exercices ci-dessous est de créer des images au format PBM à l aide de scripts Python. Le cadre Ecrire un script cadre.py qui produit une image au format PBM de dimension n n représentant un cadre dont le bord a d pixels de largeur. On pourra tester le résultat pour n = 200 et d = 20. L image obtenue doit ressembler à celle se trouvant Fig.5. L échiquier Ecrire un script echiquier.py qui produit un échiquier de telle sorte que chaque case soit de dimension d d en pixels. On pourra tester le résultat avec d = 25. L image obtenue doit ressembler à celle se trouvant Fig.6. 4

Figure 4 Visualisation graphique du fichier au format PBM donné Fig.3 Figure 5 Image d un cadre au format png III Manipulation d images à l aide du module PIL 1. Présentation du module PIL Le module PIL (Python Imaging Library) permet la manipulation et le traitement d images dans différents formats 3 : BMP, JPEG, GIF, PNG,... Le module comprend le sous-module PIL.Image qui définit une classe d objets PIL.Image. C est principalement ce sous-module que nous allons utiliser ici. import PIL. Image as image # ouverture d une image sans chargement de la trame kaa = image. open (" Kaa. gif ") # dimensions de l image print ( kaa. size ) 3. Voir à l adresse http://effbot.org/imagingbook/formats.htm pour connaître tous les formats d image gérés par le module PIL. 5

Figure 6 Image d un échiquier au format png # mode ( grosso modo la profondeur de l image ) print ( kaa. mode ) # format de l image (PNG, GIF,...) print ( kaa. format ) # affichage de l image à l écran kaa. show () # changement de mode : ici conversion de l image en niveaux de gris. kaa_niveau_gris = kaa. convert ( L ) On peut récupérer la trame de l image sous la forme d un tableau à une seule dimension dans lequel les lignes de la trame sont rangées les unes à la suite des autres. On peut convertir le tableau en une liste pour plus de commodités. On peut aussi récupérer la valeur d un pixel à l aide de sa position dans la trame trame = list ( kaa_niveau_gris. getdata ()) print ( len ( trame )) print ( trame [10]) print ( kaa_niveau_gris. getpixel ((0,0))) print ( kaa_niveau_gris. getpixel ((248,243))) On remarque que les valeurs dans le tableau (dans la liste ici) sont des entiers compris entre 0 et 255. Cela correspond aux 256 valeurs possibles de dégradé de gris entre 0 (qui représente le noir) et 255 (qui représente le blanc). Plutôt que d afficher le résultat avec la méthode show() qui crée un fichier temporaire, on peut enregistrer l image dans un fichier à l aide de la méthode save : kaa_niveau_gris. save (" Kaa_gris. gif ") Le format de l image est déterminé à l aide de l extension apparaissant dans le nom du fichier d enregistrement. On peut néanmoins préciser le format de l image si besoin. 6

Figure 7 Fichier Kaa gris.gif 2. Transformation d images On peut effectuer des opérations sur une image de plusieurs façons # à l aide de la méthode point qui applique une fonction à la valeur de chaque # pixel de l image. kaa_noir_et_blanc = kaa_niveau_gris. point ( lambda x : 255*( x //123)) kaa_noir_et_blanc. show () # En transformant les pixels un à un dans l image kaa_noir_et_blanc2 = kaa_niveau_gris. copy () largeur, hauteur = kaa_niveau_gris. size for i in range ( largeur ) : for j in range ( hauteur ) : x = kaa_niveau_gris. getpixel ((i,j)) if x <= 122 : kaa_noir_et_blanc2. putpixel ((i,j),0) else : kaa_noir_et_blanc2. putpixel ((i,j ),255) kaa_noir_et_blanc2. show () # Ou en spécifiant les dimensions de l image puis en définissant la trame kaa_noir_et_blanc3 = image. new ( L,( largeur, hauteur )) # la fonction de mappage GtoB = lambda x : 255*( x //123) # la trame tramenb =[ GtoB (x) for x in trame ] 7

kaa_noir_et_blanc3. putdata ( tramenb ) kaa_noir_et_blanc3. show () Exercice 3. Comparer les images obtenues à partir d une même image couleur : en lui appliquant le processus précédent pour obtenir une image en noir et blanc ; en la convertissant au format PBM à l aide de GIMP. Le négatif Ecrire un script negatif.py qui transforme une image en dégradé de gris en son négatif. Si l image à transformer est celle de la figure Fig.7, alors l image que vous devez obtenir doit ressembler à celle ci-dessous. Effet miroir Ecrire un script miroir.py qui tranforme une image en dégradé de gris en son image «miroir». Si l image à transformer est celle de la figure Fig.7, alors l image que vous devez obtenir doit ressembler à celle ci-dessous. 8

9