Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le...

16
Travaux Dirigés (partie 2 sur 3) Le traitement numérique des images TD sur le traitement numérique des images 2 sur 3.doc 1 ère année Page:1/16 Extrait du référentiel : BTS Systèmes Numériques option A (Informatique et Réseaux) Niveau(x) S4. Développement logiciel S4.1. Principes de base Représentation et codage des informations : bases de calcul (2,10,16), types scalaires, réels, caractères, etc. 4 Objectifs du TD : - Le format de fichier PNG - Le format de fichier JPEG - Le format de fichier TIFF - Du texte dans des images : - méthode « queue » Support d’activité : - Logiciels : EditHexa, GIMP - Fichiers : image.jpg, image.png, file.inconnu, image1.bmp et image2.bmp - Ce document au format PDF LE FORMAT DE FICHIER PNG Le format PNG (Portable Network Graphics) est un format de fichier qui a été mis au point en 1995 afin de fournir une alternative libre au format GIF, format propriétaire dont les droits sont détenus par la société Unisys (propriétaire de l'algorithme de compression LZW), ce qui oblige chaque éditeur de logiciel manipulant ce type de format à leur verser des royalties. Ainsi PNG est également un acronyme récursif pour PNG's Not Gif.

Transcript of Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le...

Page 1: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:1/16

Extrait du référentiel : BTS Systèmes Numériques option A (Informatique et Réseaux) Niveau(x)

S4. Développement logiciel

S4.1. Principes de base

Représentation et codage des informations :

bases de calcul (2,10,16), types scalaires,

réels, caractères, etc.

4

Objectifs du TD :

- Le format de fichier PNG

- Le format de fichier JPEG

- Le format de fichier TIFF

- Du texte dans des images :

- méthode « queue »

Support d’activité :

- Logiciels : EditHexa, GIMP

- Fichiers : image.jpg, image.png, file.inconnu, image1.bmp et image2.bmp

- Ce document au format PDF

LE FORMAT DE FICHIER PNG

Le format PNG (Portable Network Graphics) est un format de fichier qui a été mis au point en 1995 afin de fournir une alternative libre au format GIF, format propriétaire dont les droits sont détenus par la société Unisys (propriétaire de l'algorithme de compression LZW), ce qui oblige chaque éditeur de logiciel manipulant ce type de format à leur verser des royalties. Ainsi PNG est également un acronyme récursif pour PNG's Not Gif.

Page 2: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:2/16

Un fichier PNG est constitué d'une signature, permettant de signaler qu'il s'agit d'un fichier PNG,

puis d'une série d'éléments appelés chunks (morceaux ou segments). La signature d'un fichier

PNG (en notation décimale) est la suivante :

137 80 78 71 13 10 26 10

Question 1

Codez la signature décimale (ci-dessus) d’un fichier PNG en signature hexadécimale. …………………………………………………………………………………………………………………...

Question 2

Vérifiez votre code hexadécimale en ouvrant le fichier « image.png » dans « EditHexa ». Vos codes doivent correspondre aux huit premiers octets du fichier. Si vous constatez une erreur, appelez le professeur.

Chaque segment est composé de 4 parties :

La taille, un entier non signé de 4 octets, décrivant la taille du segment ;

Le type de segment (chunk type) : un code de 4 caractères (4 octets) composés de caractères ASCII alphanumériques (A-Z, a-z, 65 à 90 et 97 à 122) permettant de qualifier la nature du segment ;

Les données du segment (chunk data) ;

Le CRC (cyclic redundancy check), un code correcteur de 4 octets permettant de vérifier l'intégrité du segment.

Les segments peuvent être présents dans n'importe quel ordre si ce n'est qu'ils doivent commencer par le segment d'en-tête (IHDR chunk) et finir par le segment de fin (IEND chunk).

Les principaux segments (appelés critical chunks) sont :

IHDR Image header ;

PLTE Palette ;

IDAT Image data ;

IEND Image trailer ;

Les autres segments (appelés anciliary chunks) sont les suivants :

bKGD Background color ;

cHRM Primary chromaticities and white point ;

gAMA Image gamma ;

hIST Image histogram ;

pHYs Physical pixel dimensions ;

sBIT Significant bits ;

tEXt Textual data ;

tIME Image last-modification time ;

Page 3: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:3/16

tRNS Transparency ;

zTXt Compressed textual data.

Une image PNG valide doit contenir un segment IHDR, un ou plusieurs segments IDAT et un segment IEND.

Le segment IHDR doit apparaître en premier. Il contient :

Largeur : 4 octets Hauteur : 4 octets Profondeur de bit : 1 octet Type de couleur : 1 octet Méthode de compression : 1 octet Méthode de filtrage: 1 octet Méthode d'entrelacement : 1 octet

La largeur et la hauteur donnent les dimensions de l'image en pixels. Ce sont des entiers de 4 octets. Zéro est une valeur non valide.

La profondeur de bit est un nombre entier à un octet donnant le nombre de bits par échantillon ou par index de palette (pas par pixel). Les valeurs valides sont 1, 2, 4, 8 et 16, bien que toutes les valeurs ne soient pas autorisées pour tous les types de couleurs. Le type de couleur est un entier à un octet qui décrit l'interprétation des données d'image. Les codes de type de couleur représentent les sommes des valeurs suivantes: 1 (palette utilisée), 2 (couleur utilisée) et 4 (canal alpha utilisé). Les valeurs valides sont 0, 2, 3, 4 et 6.

Question 3

Retrouvez les dimensions en pixels du fichier « image.png ».

…………………………………………………………………………………………………………………...

Dans « EditHexa », cliquez : Outils/Rechercher puis entrez le segment (IHDR par exemple) puis OK. Si le segment existe, « EditHexa » affichera qu’il a trouvé une occurrence.

Page 4: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:4/16

Lorsque vous cherchez une chaîne de caratères, rappelez-vous que par exemples « IHDR » et « iHDR » , … ou encore « IhDr » sont des chaînes de caractères différentes. Voir table ASCII !!!

Des restrictions de profondeur de bits pour chaque type de couleur sont imposées afin de simplifier les implémentations et d'interdire les combinaisons qui ne se compressent pas bien. Les décodeurs doivent prendre en charge toutes les combinaisons légales de profondeur et de type de couleur. Les combinaisons autorisées sont :

Type Profondeurs de bits Interprétation de la couleur autorisée 0 1,2,4,8,16 Chaque pixel est un échantillon en niveaux de gris. 2 8,16 Chaque pixel est un triple R, G, B. 3 1,2,4,8 Chaque pixel est un index de palette ; un bloc PLTE doit apparaître. 4 8,16 Chaque pixel est un échantillon en niveaux de gris, suivi d'un échantillon alpha. 6 8,16 Chaque pixel est un triple R, G, B, suivi d'un échantillon alpha.

Question 4

Quel est le type de couleur utilisé et quelle est la profondeur de bit ? Donnez l’interprétation de la couleur autorisée.

…………………………………………………………………………………………………………………...

…………………………………………………………………………………………………………………...

…………………………………………………………………………………………………………………...

…………………………………………………………………………………………………………………...

Compléments sur le format de fichier « PNG » :

https://www.w3.org/TR/2003/REC-PNG-20031110/

LE FORMAT DE FICHIER JPEG

Page 5: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:5/16

Ce format est libre de droit. Il permet une représentation en couleurs vraies (16 millions). Ce format ne supporte pas l’animation. Le format JPEG présente un inconvénient majeur : la qualité de l'image après modification. Le format JPEG n’est pas recommandé pour l’impression. On l’utilise surtout pour les photographies, les images scannées et les images du WEB. Lors de la compression, l’utilisateur peut choisir le degré de perte : plus le degré de perte est élevé, plus le fichier compressé est léger, mais plus la qualité est mauvaise.

STRUCTURE D’UN FICHIER JPEG

Les fichiers JPEG commencent par 0xFF et 0xD8, c'est le « Start of Image ».

Exemple d’un fichier JPG sous EditHexa

Ensuite ils sont composés de blocs (frame) qui commencent par 0xFF (3ème octet), c’est le « Start

Of Frame (SOF) ».

Le « char » 0xFF de début de bloc est suivi d'un indicateur « Frame Identifier » de type de bloc. Ensuite vient la longueur du bloc qui est écrite sur deux octets, en « Big Endien » c’est-à-dire que le poids faible est à droite.

Question 1

Quelle est la longueur de la « frame » en octets ? …………………………………………………………………………………………………………………...

SOF Frame Identifer

Longueur frame

Page 6: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:6/16

Donc on retrouve après le « Start of image » séquentiellement la structure de 4 octets :

- le Start Of Frame (SOF) ;

- le Frame Identifier ;

- deux octets de longueur. La longueur est le nombre d'octets du frame suivant les deux octets de longueur.

Question 2

Quelle est d’après l’exemple ci-dessous, la longueur de la deuxième « frame » en octets ? …………………………………………………………………………………………………………………...

Le bloc qui contient les dimensions est indiqué par 0xC0, 0xC1, 0xC2 ou 0xC3. Il contient les éléments suivants :

- une indication de précision d'échantillonage ; - la hauteur sur deux octets ; - la largeur sur deux octets.

Pour lire les dimensions de l’image une fois après avoir repéré le bloc (voir ci-dessus) : on saute trois octets (deux pour la longueur du bloc et un pour la précision d'échantillonage, classiquement c'est un 0x08) ; on lit la HAUTEUR en Big Endien sur deux octets ; on lit la LARGEUR en Big Endien sur deux octets.

Page 7: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:7/16

Question 3

Retrouvez les dimensions (hauteur et largeur) de l’image de l’exemple.

Vous pouvez utiliser le logiciel EditHexa pour ouvrir le fichier « image.jpg » et retrouver la ou les occurrences des chaines.

…………………………………………………………………………………………………………………...

LE FORMAT DE FICHIER TIFF NON COMPRESSÉ Le format TIFF non compressé est pratique pour manipuler aisément et efficacement les images à l'aide d'un langage de programmation. Ce format permet de gérer la transparence des images tout en assurant une qualité d'image maximale. Pour voir les choses concrètement, nous allons utiliser une image test RGBA blanche de taille 600 x 400 pixels, dotée d'un canal de transparence alpha, créée puis enregistrée avec GIMP dans le format TIFF non compressé avec conservation des données alpha. Installez le logiciel « GIMP » (voir dossier support de l’activité). Lancez GIMP. Cliquez « Fichier/Nouvelle image... ». Saisissez les valeurs 600 en largeur et 400 en hauteur puis cliquez « Valider ».

Ajoutez un canal de transparence à l'image (« Calque/Transparence/Ajouter un canal alpha »).

Enregistrez l'image (Fichier/Exportez sous...), nom du fichier : Test-600-400.TIFF.

Cochez les options « Aucune compression » et « Enregistrer les valeurs de couleur pour les

pixels transparents » puis cliquer « Exporter ».

À l’aide du logiciel EditHexa, ouvrez le fichier « Test-600-400.TIFF »

Page 8: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:8/16

Fichier TIFF d’une image RVBA 600 x 400 non compressé créée avec GIMP

Ce contenu découle des spécifications du format TIFF. Ces spécification se déclinent (voir page

suivante) dans le cas d'un fichier TIFF non compressé, doté d'un canal alpha et enregistré avec

GIMP.

STRUCTURE DU HEADER

Octets 0-1

49 49 Indique que dans tout ce qui suit l'ordre des octets doit être pris en compte en ordre inverse (l'octet le moins significatif est le plus significatif et inversement). Cet ordre de prise en compte des octets (appelé "big endian") s'applique aux entiers 16 et 32 bits. Ainsi, avec ce codage, xx yy doit être lu yy xx et vv ww xx yy doit être lu yy xx ww vv. Par exemple une adresse notée 08 A6 0E 00 (en hexadécimal) dans le fichier représente l'adresse 00 0E A6 08 c'est à dire 960 008 en décimal.

Octets 2-3

2A 00 C'est à dire 00 2A donc 42 en décimal. Indique que le fichier est de format TIFF.

Page 9: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:9/16

Octets 4 à 7

Les octets 4 à 7 représentent l'adresse du répertoire du fichier ("Image File Directory" ou "IFD").Ce répertoire contient un certain nombre d'informations sur l'image (largeur, hauteur, nombre de canaux...). Ces informations sont découpées en blocs successifs de tailles fixes (12 octets pour chaque bloc). Ces blocs sont appelés entrées ("IFD Entries" ou plus simplement "Directory Entries"). Un IFD contient d'abord 2 octets qui représentent le nombre d'entrées qui viennent à la suite puis 12 octets par entrée. Un IFD contenant n IFD Entries est donc constitué de 2 + n x 12 octets.

08 A6 0E 00 Représentente 00 0E A6 08 c'est à dire 960 008 en décimal. L'Image File Directory commence donc à l'adresse 960008, aussitôt après la fin des données rgba des pixels (FF FF FF FF dans le cas d'une image blanche opaque).

Les octets 0 à 7 constituent l'entête du fichier (Image File Header). Après cet entête, viennent les données rgba des pixels de l'image. Dans le format TIFF tous les décalages (offsets) sont comptés par rapport au premier octet du fichier. Donc, dans un fichier TIFF, un offset représente l'adresse d'un octet, c'est à dire la position absolue de cet octet dans le fichier.

LES DATAS

Octets 8 à 960007

Données rgba des 600 x 400 = 240000 pixels soient 600 x 400 x 4 = 960 000 octets (chaque pixel rgba est codé FF FF FF FF dans le cas d'une image blanche 100% opaque).

IFD Octets 960008 à 960009

12 00 C'est à dire 00 12 donc 18 en décimal représente le nombre de structures (Directory Entries, de 12 octets chacune) qui suivent. Dans le cas présent, ces structures occupent 18 x 12 = 216 octets. Elles se trouvent entre les adresses 960010 et 960225 et sont suivies de quatre zéros : 00, 00, 00, 00.

Viennent ensuite les 18 entrées. Chaque entrée (IFD Entry) est découpée de la façon suivante : octets 0-1 : code (tag) qui indiquent le type d'information considérée ; octets 2-3 : code (type) qui indiquent le type de la donnée qui va suivre (1 = unsigned integer, 2 = ASCII, 3 = SHORT 16-bit, 4 = LONG 32-bit, 5 = RATIONAL) ; octets 4-7 : qui indiquent le nombre de données dans les 4 octets qui vont suivre (0,1,2,3 ou 4); octets 8-11: qui indiquent la valeur de la donnée considérée ou l'adresse (dans le fichier) où se trouve cette donnée.

Octets 960010 à 960021 (IFD entry n°1) - NON UTILSE

FE, 00, 04, 00, 01, 00, 00, 00, 00, 00, 00, 00 Donc 00, FE, | 00, 04 | 00, 00, 00, 01 | 00, 00, 00, 00, 00 Le tag 00FE donne une indication sur le type de données contenues dans le fichier. La valeur 00, 00, 00, 00 indique que ce champs n'est pas utilisé.

Page 10: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:10/16

Octets 960022 à 960033 (IFD entry n°2) - LARGEUR IMAGE

00, 01, 03, 00, 01, 00, 00, 00, 58, 02, 00, 00 Donc 01, 00 | 00, 03 | 00, 00, 00, 01 | 00, 00, 02, 58 (600 en décimal) Le tag 0100 indique que ce qui suit concerne la largeur de l'image. 00 03 indique que la donnée qui suit (où celle qui est située à l'adresse qui suit) est un short. 00, 00, 00 ,01 indique que ce qui suit contient une seule donnée. 02 58 indique 600 pixels de large.

Octets 960034 à 960045 (IFD entry n°3) - HAUTEUR IMAGE

01, 01, 03, 00, 01, 00, 00, 00, 90, 01, 00, 00 Donc 01, 01 | 00, 03 | 00, 00, 00, 01 | 00, 00, 01, 90 ( 400 en décimal) Le tag 0101 indique que ce qui suit concerne la hauteur de l'image. 01 90 indique 600 pixels de haut.

Octets 960046 à 960057 (IFD entry n°4) - BITS POUR R, G, B ET A

02, 01, 03, 00, 04, 00, 00, 00, F6, A6, 0E, 00 Soit 01, 02 | 00, 03 | 00, 00, 00, 04 | 00, 0E, A6, F6 (960246 en décimal) Le tag 0102 indique que ce qui suit représente le nombre de bits par composante de couleur rgba. 00 03 indique que la donnée qui est située à l'adresse qui suit est un short. 00, 00, 00, 04 indique qu'à partir de l'adresse indiquée ci-après, il y a 4 données de type short qui se suivent. À partir de l'adresse 00 0E A6 F6 (960246 en décimal) on trouve bien quatre fois 08 00 c'est à dire 00 08 qui signifient que les composantes r, g, b et a ont chacune 8 bits.

Octets 960058 à 960069 (IFD entry n°5) - COMPRESSION

03, 01, 03, 00, 01, 00, 00, 00, 01, 00, 00, 00 Soit 01, 03 | 00, 03 | 00, 00, 00, 01 | 00, 00, 00, 01 Le tag 0103 indique que ce qui suit concerne la compression de l'image. La valeur 00 01 signifie qu'il n'y a pas de compression.

Octets 960070 à 960081 (IFD entry n°6) - ESPACE DE COULEUR

06, 01, 03, 00, 01, 00, 00, 00, 02, 00, 00, 00 Donc 01, 06 | 00, 03 | 00, 00, 00, 01 | 00, 00, 00, 02 Le tag 0106 indique que ce qui suit concerne l'espace de couleur de l'image. La valeur 00 02 signifie RGB.

Octets 960082 à 960093 (IFD entry n°7) - NOM DU FICHIER

0D, 01, 02, 00, 19, 00, 00, 00, 36, A7, 0E, 00 Soit 01, 0D | 00, 02 | 00, 00, 00, 19 | 00, 0E, A7, 36 (960310 en décimal) Le tag 010D indique que ce qui suit concerne le nom du fichier image. La valeur 00, 00, 00, 19 (25 en décimal) signifie qu'il y a 25 caractères ascii (24 caractères de la chaine "D:\test\test-600-400.tif" + un 00 de fin de chaine) et l'adresse 00 0E A7 36 (960310 en décimal) renvoie à l'adresse du début de cette chaine.

Octets 960094 à 960105 (IFD entry n°8) - COMMENTAIRES

0E, 01, 02, 00, 12, 00, 00, 00, 50, A7, 0E, 00 Donc 01, 0E | 00, 02 | 00, 00, 00, 12 | 00, 0E, A7, 50 (960336 en décimal) Le tag 010E indique que ce qui suit concerne un commentaire permettant de décrire l'image. 00 02 et 00 12 signifient 18 caractères ascii. 00 0E A7 50 (960336 en décimal) signie que ces caractères commencent à l'adresse 960336 où l'on trouve bien "created with gimp" (17 caractères) suivie d'un 00 soient 18 caractères en tout.

Page 11: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:11/16

Octets 960106 à 960117 (IFD entry n°9) - BANDES

11, 01, 04, 00, 07, 00, 00, 00, 1A, A7 0E 00 Donc 01, 11 | 00, 04 | 00, 00, 00, 07 | 00, 0E, A7, 1A (960282 en décimal) Le tag 0111 indique que ce qui suit concerne les bandes de l'image. Une image tiff est considérée comme étant découpées en "bandes" (strips) d'octets rgba consécutifs. La valeur 7 indique que dans le cas présent, les données images sont découpées en 7 bandes consécutives. 00 0E A7 1A (960282 en décimal) indique l'adresse où se trouve l'adresse de la première bande sachant que les adresses des 6 bandes suivantes suivent aussitôt après. • 960282 à 960285 : adresse de la bande 1 : 08, 00, 00, 00 donc 00, 00, 00, 08 (8 en décimal) • 960286 à 960289 : adresse de la bande 2 : 08, 58, 02, 00 donc 00, 02, 58, 08 (153608 en décimal) • 960290 à 960293 : adresse de la bande 3 : 08, B0, 04, 00 donc 00, 04, B0, 08 (307208 en décimal) • 960294 à 960297 : adresse de la bande 4 : 08, 08, 07, 00 donc 00, 07, 08, 08 (460808 en décimal) • 960298 à 960301 : adresse de la bande 5 : 08, 60, 09, 00 donc 00, 09, 60, 08 (614408 en décimal) • 960302 à 960305 : adresse de la bande 6 : 08, B8, 0B, 00 donc 00, 0B, B8, 08 (768008 en décimal) • 960306 à 960310 : adresse de la bande 7 : 08, 10, 0E, 00 donc 00, 0E, 10, 08 (921608 en décimal) On constate que dans le cas présent, l'image lors de son enregistrement par gimp a été découpée en bandes de 153600 octets. On a 600 x 64 (cf lignes par bande) = 38400 x 4 (octets par canal) = 153600

Octets 960118 à 960129 (IFD entry n°10) - ORIENTATION IMAGE

12, 01, 03, 00, 01, 00, 00, 00, 01, 00, 00, 00 Donc 01, 12 | 00, 03 | 00, 00, 00, 01 | 00, 00, 00, 01 Le tag 0111 indique que ce qui suit concerne l'orientation de l'image. 00 01 signifie que la ligne 0 représente le haut de l'image et la colonne 0 le coté gauche de l'image.

Octets 960130 à 960141 (IFD entry n°11) - COMPOSANTES DE COULEUR

15, 01, 03, 00, 01, 00, 00, 00, 04, 00, 00, 00 Donc 01, 15 | 00, 03 | 00, 00, 00, 01 | 00, 00, 00, 04 Le tag 0115 indique que ce qui suit concerne le nombre de composantes de couleurs (canaux) par pixel - le nombre 4 signifie 4 canaux (rgba).

Octets 960142 à 960153 (IFD entry n°12) - LIGNES PAR BANDE

16, 01, 03, 00, 01, 00, 00, 00, 40, 00, 00, 00 Donc 01, 16 | 00, 03 | 00, 00, 00, 01| 00, 00, 00, 40 (64 en décimal) Le tag 0116 indique que ce qui suit concerne le nombre de lignes par bande (RowsPerStrip). 00 40 (64 en décimal).

Octets 960154 à 960165 (IFD entry n°13) - OCTETS PAR BANDE

17, 01, 04, 00, 07, 00, 00, 00, FE, A6, 0E, 00 Donc 01, 17 | 00, 04 | 00, 00, 00, 07 | 00, 0E, A6, FE (960254 en décimal) Le tag 0117 indique que ce qui suit concerne le nombre d'octets dans la bande (StripByteCounts) après compression. 00, 00, 00, 07, 00, 0E, A6, FE signifie 7 adresses à partir de l'adresse 960254 Ces 7 adresses contiennent : • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 1

Page 12: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:12/16

• 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 2 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 3 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 4 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 5 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 6 • 00, 96, 00, 00 donc 00, 00, 96, 00 (38400 en décimal) - nombre d'octets dans la bande 7 153600 x 6 = 921600 + 38400 = 960000 octets Remarque : 600 x 64 x 6 x 4 = 600 x 384 x 4 + 600 x 16 x 4 = 921600 + 38400 = 960000

Octets 960166 à 960177 (IFD entry n°14) - RESOLUTION HORIZONTALE

1A, 01, 05, 00, 01, 00, 00, 00, E6, A6, 0E, 00 Donc 01, 0A | 00, 05 | 00, 00, 00, 01 | 00, 0E, A6, E6 ( 960230 en décimal) Le tag 011A indique que ce qui suit concerne la résolution horizontale (dans le sens de la largeur de l'image). 00 05 indique que la donnée sera un nombre rationnel (une fraction). Cette donnée est à l'adresse 00, 0E, A6, E6 (960230 en décimal) où l'on trouve 48, 00, 00, 00, 01, 00, 00, 00 donc 00, 00, 00, 48 (72 en décimal) et 00, 00, 00, 01. La résolution horizontale de l'image est 72/1 = 72 dpi.

Octets 960178 à 960189 (IFD entry n°15) - RESOLUTION VERTICALE

1B, 01, 05, 00, 01, 00, 00, 00, EE, A6, 0E, 00 Donc 01, 1B | 00, 05 | 00, 00, 00, 01 | 00, 0E, A6, EE (960238 en décimal) Le tag 011B indique que ce qui suit concerne la résolution verticale (dans le sens de la hauteur de l'image). 00 05 indique que la donnée sera un nombre rationnel (une fraction). Cette donnée est à l'adresse 00 0E A6 EE (960238 en décimal) où l'on trouve 48, 00, 00, 00, 01, 00, 00, 00 donc 00, 00, 00, 48 (72 en décimal) et 00, 00, 00, 01. La résolution de l'image dans le sens vertical est 72/1 = 72 dpi.

Octets 960190 à 960201 (IFD entry n°16) - POSITION DES COMPOSANTES DE COULEURS

1C, 01, 03, 00, 01, 00, 00, 00, 01, 00, 00, 00 Donc 01, 1C | 00, 03 | 00, 00, 00, 01 | 00, 00, 00, 01 Le tag 011C indique que ce qui suit concerne la position relative des composantes de couleur. La valeur 00, 00, 00, 01 signifie que les composantes de couleur des pixels sont rangées les unes à la suite des autres dans le sens RGBA RGBA RGBA ...

Octets 960202 à 960213 (IFD entry n°17) - UNITE DE RESOLUTION

28, 01, 03, 00, 01, 00, 00, 00, 02, 00, 00, 00 Donc 01, 28 | 00, 03 | 00, 00, 00, 01 | 00, 00, 00, 02 Le tag 0128 indique que ce qui suit concerne l'unité utilisée pour la résolution de l'image dans le sens horizontal et vertical. 00, 00, 00, 02 signifie que cette unité est le pouce (inch).

Octets 960214 à 960225 (IFD entry n°18) - TRANSPARENCE

52, 01, 03, 00, 01, 00, 00, 00, 02, 00, 00, 00 donc 01, 52 | 00, 03 | 00, 00, 00, 01 | 00, 00, 00, 02 Le tag 0152 indique que ce qui suit concerne la transparence. La valeur 00 02 signifie que les valeurs des composantes de couleurs ne sont pas perdues ni arrondies dans le cas où l'image est partiellement ou entièrement tranparente.

Octets 960226 à 960229

00, 00, 00, 00 Quatre octets à zéro marquant la fin de l'IFD.

Page 13: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:13/16

Octets 960230 à 960237

48, 00, 00, 00, 01, 00, 00, 00 Soit 00, 00, 00, 48 ( 72 en décimal) et 00, 00, 00, 01 signifie 72/1 = 72 dpi (résolution horizontale de l'image).

Octets 960238 à 960245

48, 00, 00, 00, 01, 00, 00, 00 Donc 00, 00, 00, 48 ( 72 en décimal) et 00, 00, 00, 01 signifie 72/1 = 72 dpi (résolution vertitale de l'image).

Octets 960246 à 960253

08, 00, 08, 00, 08, 00, 08, 00 Soit 00, 08 | 00, 08 | 00, 08 | 00, 08, signifie que les composantes r, g, b et a sont chacune constituées de 8 bits.

Octets 960254 à 960281

00, 58, 02, 00, 00, 58, 02, 00, 00, 58, 02, 00, 00, 58, 02, 00, 00, 58, 02, 00, 00, 58, 02, 00, 00, 96,

00, 00 On trouve les 7 valeurs qui représentent le nombre d'octets contenus dans les bandes 1 à 7 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 1 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 2 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 3 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 4 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 5 • 00, 58, 02, 00 donc 00, 02, 58, 00 (153600 en décimal) - nombre d'octets dans la bande 6 • 00, 96, 00, 00 donc 00, 00, 96, 00 (38400 en décimal) - nombre d'octets dans la bande 7

Octets 960282 à 960309

08, 00, 00, 00, 08, 58, 02, 00, 08, B0, 04, 00, 08, 08, 07, 00, 08, 60, 09, 00, 08, B8, 0B, 00, 08, 10,

0E, 00 donc 00, 00, 00, 08 | 00, 02, 58, 08 | 00, 04, B0, 08 | 00, 07, 08, 08 | 00, 09, 60, 08 | 00, 0B, B8, 08 | 00, 0E, 10, 08 • 00, 00, 00, 08 (décimal 8) représente l'adresse de début de la première bande • 00, 02, 58, 08 (décimal 153608) représente l'adresse de début de la 2ème bande • 00, 04, B0, 08 (décimal 307208) représente l'adresse de début de la 3ème bande • 00, 07, 08, 08 (décimal 460808) représente l'adresse de début de la 4ème bande • 00, 09, 60, 08 (décimal 614408) représente l'adresse de début de la 5ème bande • 00, 0B, B8, 08 (décimal 768008) représente l'adresse de début de la 6ème bande • 00, 0E, 10, 08 (décimal 921608) représente l'adresse de début de la 7ème bande

Octets 960310 à 960334

44, 3A, 5C, 74, 65, 73, 74, 5C, 74, 65, 73, 74, 2D, 36, 30, 30, 2D, 34, 30, 30, 2E, 74, 69, 66, 00 nom du fichier : 24 caractères de la chaine "D:\test\test-600-400.tif" + un 00 de fin de chaine

Octet 960335

00 Un 00 supplémentaire.

Page 14: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:14/16

Octets 960336 à 96353

43, 72, 65, 61, 74, 65, 64, 20, 77, 69, 74, 68, 20, 47, 49, 4D, 50, 00 "created with gimp" (17 caractères) suivie d'un 00 soient 18 caractères en tout.

Spécification d’un fichier TIFF non compressé RVBA

Soit le fichier « file.inconnu » se trouvant dans le dossier support de l’activité.

Question 1

S’agit-il d’une image TIFF, justifiez votre réponse. …………………………………………………………………………………………………………………...

Nous admettrons pour la suite que le fichier « file.inconnu » est un fichier TIFF de dimensions 90 x 90 codé sur 24 bits (RGB).

Page 15: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:15/16

Question 2

À quelle adresse décimale commence l’IFD ? …………………………………………………………………………………………………………………...

Question 3

Quel est le nombre d’IFD ? …………………………………………………………………………………………………………………...

Question 4

Quelle est la taille en octets des données de l’image ? …………………………………………………………………………………………………………………...

Question 5

Vérifiez que le résultat de la question 4 corresponde aux propriétés du fichier (dimensions et

codage). …………………………………………………………………………………………………………………...

Question 6

Quelle est la taille en octets occupée par les IFD ? …………………………………………………………………………………………………………………...

Question 7

Retrouvez la largeur de l’image avec l’entrée IFD n°2.

00, 01, 03, 00, 01, 00, 00, 00, 5A, 00, 00, 00 …………………………………………………………………………………………………………………...

…………………………………………………………………………………………………………………...

DU TEXTE « HIDER » DANS DES IMAGES

Question 1

Ouvrez avec « Paint » par exemple les deux images nommées (image1.bmp et image2.bmp).

Comparez les deux images attentivement et notez vos remarques. …………………………………………………………………………………………………………………...

Page 16: Travaux Dirigés TD sur le traitement (partie 2 sur 3) 3 ...robert.cireddu.free.fr/SNIR/TD sur le traitement numerique des... · Travaux Dirigés (partie 2 sur 3) Le traitement numérique

Travaux Dirigés (partie 2 sur 3)

Le traitement numérique des images

TD sur le traitement

numérique des images 2 sur

3.doc

1ère année

Page:16/16

On peut faire « parler » les images, comment ? Il suffit d’introduire dans le fichier du texte codé

en ASCII. Deux méthodes sont possibles :

La première méthode consiste à remplacer les octets codant les pixels par les octets du texte.

La seconde méthode place le texte à la suite des octets destinés au codage des pixels.

Vous n’avez rien remarqué entre les deux images, et pourtant dans l’une des deux images se

cache du texte ou autrement dit une chaîne de caractères.

Question 2

Dans lequel des deux fichiers se cachent le texte, sachant que l’image n’a pas été altérée ?

Les propriétés des fichiers (notamment la taille) devraient vous aider à répondre à la question 2.

…………………………………………………………………………………………………………………...

La méthode utilisée ici est la deuxième, le texte a été placé à la suite des octets destinés au

codage des pixels, on a utilisé la « queue » du fichier.

Question 3

Quel message ou chaîne de caractères est caché dans le fichier ?

L’éditeur hexadécimale devrait vous être utile pour trouver la réponse à la question 3.

…………………………………………………………………………………………………………………...

Essayez à votre tour d’insérer un texte dans une image de votre choix, c’est très facile à l’aide de

l’éditeur hexadécimale (Outils Avancés/Ajout d’une séquence).

Nous verrons entre autre dans une troisième partie, la première méthode qui est moins décelable

mais qui altère quelque peu les bits de l’image.