TP : Gestion d une image au format PGM

Dimension: px
Commencer à balayer dès la page:

Download "TP : Gestion d une image au format PGM"

Transcription

1 TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples telles que la lecture et l écriture d images dans ce format. Dans un second temps, il est proposé de compléter cette classe avec des méthodes de filtrage d images. Enfin, pour ceux qui sont très très très fort et qui vont très très très vite, on propose, dans la 3 ième partie, une extension du programme aux images couleurs (format PPM). Préliminaires : Dans un répertoire de votre choix, créez trois fichiers contenant le programme principal et la classe Image. Téléchargez dans ce même répertoire les images «blood.pgm», «flowers.pgm», et «Logo.pgm» qui se trouvent Vous pouvez observer les images en utilisant n importe quel logiciel de visualisation d images. Détails du format PGM : Le format PGM est un format d enregistrement d images non compressé relativement simple. Les images sont codées par des valeurs représentant les niveaux de gris de leurs pixels. Ces valeurs sont comprises entre 0 (noir) et 255 (blanc) et représentent différentes teintes de gris. D un point de vue programmation, le type de donnée le plus approprié pour stocker le niveau de gris d un pixel est «unsigned char». Le format d image PGM est composé d une en-tête de quelques lignes (contenant notamment les dimensions de l image et des commentaires), suivi de la liste des niveaux de gris, enregistrés par ligne par ligne. Comme vous pouvez le constater en ouvrant l image «logo.pgm» avec un éditeur de texte, un fichier au format PGM se présente sous la forme suivante : P5 Mot clé indiquant un fichier PGM en mode binaire # Ligne de commentaires # Ligne de commentaires Dimensions de l image (66 colonnes, 300 lignes) 255 Valeur du niveau de gris max Ž ƒƒƒ... Niveau de gris des pixels octet par octet Le niveau de gris d un pixel de l image est, en fait, le code ASCII d un caractère (ce qui justifie la présence des caractères spéciaux). Pour simplifier le programme, on supposera qu il n y a qu une seule ligne de commentaire dans l en-tête. ère partie Création, lecture et écriture d une image au format PGM Pour manipuler les fichiers contenant les images (ouverture, lecture, écriture), il est nécessaire de connaître les classes C++ appropriées. Allez donc voir la synthèse sur les flots d entrée/sortie à la fin de l énoncé (en plus du cours, bien sûr)! - Création et enregistrement d une image Programmez une classe Image répondant au programme principal suivant : int main() { int i; // Création d'une image de 00 lignes, 50 colonnes, // initialisée à 0 (noir) Image im( 00, 50, true ); // Dessine une diagonale blanche dans l'image for (i = 0; i<im.ligne(); i++) im.setpixel(i,i, (unsigned char) 255); // Enregistrement de l'image de nom toto.pgm avec un commentaire

2 im.writepgm ( "toto.pgm", "Ceci est un commentaire"); return 0 ; } En mémoire, l image pourra être codée comme un vecteur de unsigned char de dimension = Nb Lignes * Nb Colonnes. Ainsi, le pixel de la ligne l et de la colonne c de l image aura pour coordonnée dans le vecteur : l * Nb Colonnes + c. 2- Constructeur par recopie et surcharge de l opérateur = Codez les méthodes nécessaires pour répondre aux instructions suivantes : // Constructeur par recopie de im dans im2 Image im2( im ); im2.writepgm ( "titi.pgm", "Bonjour!"); // Surcharge de l opérateur = entre im et im3 Image im3( 200, 50, false ); im3 = im; 3- Lecture d une image Codez la méthode de lecture nécessaire pour lire une image. Pour vous assurer que votre lecture est correcte, vous pouvez l enregistrer, juste après la lecture, sous un nouveau nom : // Constructeur avec lecture directe Image im4( "logo.pgm" ); Im4.WritePGM ( "copielogo.pgm", "Duplication de l image logo.pgm"); Vérifiez avec votre logiciel de visualisation d images que l image originale et la copie sont bien identiques. Vous pouvez également ouvrir votre copie avec un traitement de texte pour vérifier que l entête est correcte (notamment le commentaire). 2 ère partie Filtrage d images Dans cette seconde partie, complétez la classe avec une méthode de filtrage d image (filtre de Sobel). Celle-ci est brièvement présentée ci-dessous. Pour vos expériences, vous pouvez utiliser l image «Blood.pgm». Le programme principal aura l allure suivante : // Lecture de l'image originale Image Blood( "blood.pgm" ); // Filtrage de l'image selon Sobel Blood.Sobel(); // Enregistrement de l'image Blood.WritePGM("bSobel.pgm", "Filtre Sobel Im.Orig= blood.pgm"); 0 Le filtre de Sobel à l allure suivante : S = Le principe du filtrage consiste à appliquer le filtre sur tous les pixels de l image, de la manière suivant : Si (l,c) désigne les coordonnées du pixel à filtrer, le niveau de gris filtré du pixel est obtenu en sommant les niveaux de gris de ses voisins pondérés par les coefficients de la matrice S, puis en divisant cette somme par 4. Si N et M désignent respectivement le niveau de gris du pixel original de coordonnées lc, lc, (l,c), et le niveau de gris du pixel filtré de coordonnées (l,c), nous avons :

3 M l, c 4 ( N N N + N + N N ) = l, c l, c l, c l, c+ l +, c + l +, c+ Remarques : - Ne traitez pas les pixels au bord de l image (ils posent certaines difficultés qu il n est pas nécessaire de résoudre dans le cadre de cet exercice). - Le niveau de gris filtré n est pas forcément un nombre entier positif De plus, la valeur obtenue n est pas forcément comprise entre 0 et 255 A vous de faire les traitements adéquats Examinez l image ainsi filtrée et interprétez le résultat à l aide des coefficients du filtre D autres filtres de même forme sont possibles, en voici quelques uns : Filtre de Prewitt : 2 P = , Filtre Laplacien : L = 9.96 Vous pouvez également combiner des filtres et en inventer vous-même! ème partie Lecture / Ecriture d images couleur au format PPM Il s agit de créer une nouvelle classe permettant de manipuler des images couleurs au format PPM. Créez un second projet et utilisez les noms de fichier suivants ImageCouleur.h et ImageCouleur.cpp. Le format PPM, qui permet d enregistrer des images couleurs, est presque identique au format PGM aux différences suivantes : - Dans l en-tête, nous avons P6, dans la première ligne, au lieu de P5. - Les données sont organisées de la manière suivante : la suite des valeurs est constituée des intensités de chaque pixel de l'image, dans les trois canaux (rouge), (vert) et (bleu). Chacune de ces intensités est codée sur un octet, donc a une valeur entière comprise entre et. Quels sont vos attributs? Outre les méthodes de la classe précédente qu il est possible d étendre à notre cas, proposez également une méthode qui permette de transformer une image couleur en une image à niveaux de gris. Dans ce cas, vous considèrerez que le niveau de gris est égale à la moyenne des valeurs sur les trois canaux R, V, B). Comment filtrer une image couleur? Pour vos tests, vous utiliserez l image «flowers.ppm».

4 Annexe Synthèse sur les flots associés aux fichiers (classes ofstream et ifstream) Jusqu à présent, nous avons parlé de flots prédéfinis (cout et cin) mais sans dire comment ce flot pourrait être associé à un fichier. Cette synthèse montre comment y parvenir et examine les possibilités d accès direct dont on peut alors bénéficier. Attention, les méthodes offertes par ces deux classes sont bien plus nombreuses que celles exposées. Néanmoins, les méthodes présentées devraient suffire pour réaliser le sujet. - Connexion d un flot de sortie à un fichier Pour associer un flot de sortie à un fichier, il suffit de créer un objet de type ofstream. L emploi de cette nouvelle classe nécessite d inclure un fichier d en-tête nommé fstream.h, en plus de iostream.h. Le constructeur de la classe nécessite deux arguments : - Le nom du fichier concerné (chaîne de caractères) - Un mode d ouverture défini par une constante (cf. table ) Voici un exemple de déclaration d un objet du type ofstream : ofstream sortie ("truc.dat", ios::out ios::binary); L objet sortie sera donc associé au fichier nommé truc.dat, après avoir été ouvert en écriture. Une fois construit, l écriture dans le fichier associé peut se faire comme n importe quel flot (en particulier cout). Pour tester si l ouverture s est bien passée, on pourra utiliser if (!sortie.is_open() ) { }; Pour fermer le fichier, on utilisera sortie.close(); Pour écrire dans un fichier, nous pourrons employer : sortie << << << endl; pour écrire en mode texte et int temp = 0 ; sortie.write( temp, sizeof(int) ); ou char buf[80]="bonjour!"; sortie.write( buffer, strlen(buf)*sizeof(char)); pour écrire en mode binaire 2- Connexion d un flot d entrée à un fichier Pour associer un flot d entrée à un fichier, on emploie un mécanisme analogue à celui utilisé pour un flot de sortie. Il faut toujours inclure le fichier d en-tête fstream.h en plus du fichier iostream.h. Le constructeur comporte les mêmes arguments que précédemment, c est à dire le nom du fichier et le mode d ouverture. Par exemple avec l instruction : ifstream entree ("truc.dat", ios::in ios::binary); l objet entree sera associé au fichier de nom truct.dat, après avoir été ouvert en lecture. Pour tester si l ouverture s est bien passée, on pourra utiliser if (!entree.is_open() ) { }; Pour fermer le fichier, on utilisera entree.close(); Pour lire dans un fichier, nous pourrons employer : entree >> >> ; pour lire en mode texte et int temp ; entree.read( temp, sizeof(int));

5 ou char buffer[80]; entree.getline(buffer, 80); pour lire en mode binaire. 3- Les possibilités d accès direct La méthode read( ) par exemple permet de lire séquentiellement dans un fichier, c est à dire depuis le début de ce fichier jusqu à sa fin. L incrémentation dans le fichier (pour se préparer à la prochaine lecture) est effectuée automatiquement par read( ). Ceci peut s avérer contraignant lorsque l on souhaite lire une information à une position connue dans le fichier. Des possibilités d accès directe sont donc offertes, en agissant sur un pointeur dans ce fichier, c est à dire en précisant le rang du prochain octet à lire ou à écrire. Les classes ifstream et ofstream offrent respectivement des méthodes de positionnement du pointeur, appelées seekg( ) et seekp( ). Ces méthodes comportent deux arguments : - Un entier représentant un déplacement du pointeur, par rapport à une origine précisée par le second argument - Une constante entière choisie parmi les trois possibilités présentées dans la table 2. Exemples : entree.seekg(0, ios::cur); sortie.seekp(0, ios::end); Par ailleurs, il existe dans chacune des classes ifstream et ofstream une fonction permettant de connaître la position courante du pointeur. Il s agit de tellg( ) pour ifstream et de tellp( ) pour ofstream. Exemples : int position = entree.tellg(); int position2 = sortie.tellp(); 4- Modes d ouverture et modes de déplacement Constante Action ios::in Ouverture en lecture (obligatoire pour la classe ifstream) ios::out Ouverture en écriture (obligatoire pour la classe ofstream) ios::app Ouverture en ajout de données (écriture en fin de fichier) ios::trunc Si le fichier existe, son contenu est perdu ios::binar Le fichier est ouvert en mode binaire. Ce mode est uniquement y utilisé pour les systèmes d exploitation (comme windows!) qui distinguent les fichiers texte des autres. Table : Modes d ouverture d un fichier Constante Action ios::beg Le déplacement est exprimé par rapport au début du fichier ios::cur Le déplacement est exprimé par rapport à la position actuelle ios::end Le déplacement est exprimé par rapport à la fin du fichier Table 2 : Modes de positionnement dans un fichier

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique.

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique. Le langage C++ Master Actuariat Séance 5 : Les flots C++ - F.CHAKER- M1 Actuariat 2014/2015 1 Les entrées sorties en C++ Les entrées et les sorties sont considérées comme des flots. Un flot est associé

Plus en détail

Programmation C++ (débutant)/les fichiers

Programmation C++ (débutant)/les fichiers Programmation C++ (débutant)/les fichiers 1 Programmation C++ (débutant)/les fichiers Généralité sur les fichiers La règle générale pour créer un fichier est la suivante : il faut l'ouvrir en écriture.

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 7 : Structures et Fichiers OBJECTIFS DE LA SÉANCE Deux notions abordées dans ce cours Celle

Plus en détail

Mini projet : traitement d'images

Mini projet : traitement d'images Mini projet : traitement d'images Pour ce mini-projet, la pièce finale sera un fichier «mosaique-prenom-nom.py» contenant votre programme que vous enverrez à vos professeurs : pjacquet.mail@gmail.com et

Plus en détail

Chapitre cinq : Représentation des Images

Chapitre cinq : Représentation des Images Chapitre cinq : Représentation des Images Ce chapitre présente les bases pour la représentation des images et des sons. ~ 1 ~ 6. 6.1.1. Introduction Il existe plusieurs moyens de représenter des images.

Plus en détail

II. Conversions. I. Initialisation. III. Méthode point. TD Python Traitement d images MP*

II. Conversions. I. Initialisation. III. Méthode point. TD Python Traitement d images MP* Le but de ce TD est d utiliser les procédures et fonctions Python pour traiter des fichiers images. II. Conversions I. Initialisation Importer le module numpy sous l appellation np. On utilise le module

Plus en détail

Utiliser des images sous MATLAB Version du 20 mars 2012

Utiliser des images sous MATLAB Version du 20 mars 2012 Utiliser des images sous MATLAB Version du 20 mars 2012 1 Les images à TELECOM ParisTech L existence de l équipe Image de TELECOM ParisTech remonte à près de 30 ans. Aussi il existe un format d image spécifique

Plus en détail

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés ENSEIRB-MATMECA PG-113 014 TP6: Optimisation au sens des moindres carrés Le but de ce TP est d implémenter une technique de recalage d images qui utilise une méthode vue en cours d analyse numérique :

Plus en détail

Tableau R : 255 0 0 255 255 0. Tableau G : 0 255 255 255 255 0. Tableau B : 0 0 255 0 255 0. Chaque carré représente un pixel

Tableau R : 255 0 0 255 255 0. Tableau G : 0 255 255 255 255 0. Tableau B : 0 0 255 0 255 0. Chaque carré représente un pixel Mini-Projet n 2 : Jouer avec les images. A rendre pour le lundi 14 novembre 2011 avant midi. Introduction : Une image est un ensemble de pixels dont chacun est défini par trois valeurs, que l'on note R,

Plus en détail

Thème Image - TP2 - Compression

Thème Image - TP2 - Compression Université Joseph Fourier DLST UE MAP110/120 Année 2013-14 Thème Image - TP2 - Compression Compte-ru Il vous est demandé de rédiger un compte-ru pour ce TP. Ouvrez en parallèle un document Open Office

Plus en détail

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une

Plus en détail

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C DUT Informatique 2015 / 2016 Travaux Pratiques n o 0 : Rappels de programmation C Nom(s) : Groupe : Date : Objectifs : renouer avec les notions, la manipulation et l écriture de programmes C, en particulier

Plus en détail

TP2 Opérations et filtres

TP2 Opérations et filtres TP2 Opérations et filtres 1. Opérations arithmétiques Mettre en place les fonctions Min et Max sur 2 images en niveaux de gris. Min() conserve entre 2 images les pixels de luminance minimum, Max() conserve

Plus en détail

1 Les entrées-sorties, les ux

1 Les entrées-sorties, les ux 1 Les entrées-sorties, les ux 1 1.1 Généralités les fonctions d'entrée/sortie n'appartiennent pas au langage C++ mais à la bibliothèque standard Les fonctions d'entrée/sortie sont déclarées dans le chier

Plus en détail

COURS et TP DE LANGAGE C++

COURS et TP DE LANGAGE C++ COURS et TP DE LANGAGE C++ Chapitre 1 Eléments de langage C++ Joëlle MAILLEFERT joelle.maillefert@iut-cachan.u-psud.fr IUT de CACHAN Département GEII 2 CHAPITRE 1 ELEMENTS DE LANGAGE C++ Les exercices

Plus en détail

La notion de format. Représenter des images et des sons

La notion de format. Représenter des images et des sons La notion de format Exercice 1 Créer avec un éditeur de texte simple (comme Notepad) un fichier au format PBM de dimensions 20x20 qui affiche le logo ISN. A quel problème d affichage est-on confronté?

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

1.1 Écrire dans votre cahier la lettre de chaque instruction syntaxiquement correcte. Note: Les instructions sont indépendantes les unes des autres.

1.1 Écrire dans votre cahier la lettre de chaque instruction syntaxiquement correcte. Note: Les instructions sont indépendantes les unes des autres. QUESTION 1 (3 Points) Ces déclarations sont utilisées pour les sous-questions 11 à 13 const int LONGMAX = 51; const int CDMAX = 100; typedef char type_string[longmax]; enum type_classement POURRI,PASSABLE,BON,TRES_BON,EXCELLENT

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2014-2015 (1ere session) durée 3h Tous documents et calculatrices autorisés. Répondez aux questions sur une copie séparée Le sujet comporte 8 pages

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Projet Matlab : un logiciel de cryptage

Projet Matlab : un logiciel de cryptage Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que

Plus en détail

X. Juvigny. Septembre 2007

X. Juvigny. Septembre 2007 De C à C++ X Juvigny Septembre 2007 1 Introduction Outre les nouvelles possibilités en programmation orienté objet, le C++ offre de plus de nouvelles caractéristiques par rapport au langage C dont il est

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs)

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs) Année Universitaire 2006/2007 CHAPITRE 6 : Tableaux Définition Tableaux à une dimension (Vecteurs) Déclaration ; Mémorisation M ; Tableaux à plusieurs dimensions Déclaration Tableaux à deux dimensions

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

DS Java 1. 19 novembre 2005

DS Java 1. 19 novembre 2005 DS Java 1 19 novembre 2005 Durée : 2 heures. Documents (notes et polycopiés) autorisés. La rigueur et la propreté seront prises en compte dans l évaluation. Le barème est indicatif. Vous rédigerez vos

Plus en détail

INFO-F-101 Programmation Projet 4 Page Ranking(1/4): Création de la matrice du compte des liens

INFO-F-101 Programmation Projet 4 Page Ranking(1/4): Création de la matrice du compte des liens INFO-F-101 Programmation Projet 4 Page Ranking(1/4): Création de la matrice du compte des liens Année académique 2009 2010 1 Introduction Ce projet est le premier d une série de quatre projets qui ont

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Génie Logiciel I Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M.

Plus en détail

Résolution d exercices avec Visual Studio

Résolution d exercices avec Visual Studio Résolution d exercices avec Visual Studio Document rédigé par David Taralla 3 e Bachelier en Sciences Informatiques david.taralla@student.ulg.ac.be Dernière version : 7 novembre 2011 Préambule Ce petit

Plus en détail

Développement d opérateurs. de traitement d images en langage C

Développement d opérateurs. de traitement d images en langage C Développement d opérateurs de traitement d images en langage C Emmanuel TROUVÉ et Lionel VALET Résumé Ce document présente un ensemble de formats de données et de règles de programmation adoptés au LISTIC

Plus en détail

DIIC - INC, 3 e année. Module COMV TP 1 - Introduction au codage d image : manipulation des outils

DIIC - INC, 3 e année. Module COMV TP 1 - Introduction au codage d image : manipulation des outils DIIC - INC, 3 e année Module COMV TP 1 - Introduction au codage d image : manipulation des outils Gaël Sourimant, Luce Morin 18 octobre 2006 1 Introduction Le but de ce TP est d observer et de comparer

Plus en détail

Traitement d'image ou Programmer des fonctions de logiciels de retouche d'images!

Traitement d'image ou Programmer des fonctions de logiciels de retouche d'images! I. Bien ranger ses affaires. Traitement d'image ou Programmer des fonctions de logiciels de retouche d'images! Pour bien travailler il est très important de savoir où sont rangées ses affaires. On va travailler

Plus en détail

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

Analyse d images. Edmond.Boyer@imag.fr. Edmond Boyer UFRIMA 1 Analyse d images Edmond.Boyer@imag.fr Edmond Boyer UFRIMA 1 1 Généralités Analyse d images (Image Analysis) : utiliser un ordinateur pour interpréter le monde extérieur au travers d images. Images Objets

Plus en détail

Une mosaïque de photos

Une mosaïque de photos Département IMA / 3A (S5) Programmation Structurée 2011/2012 Sujet proposé par J. Dequidt http://laure.gonnord.org/pro/teaching/ Une mosaïque de photos Premier Projet de Développement Logiciel en C Lire

Plus en détail

LA GESTION DE FICHIERS

LA GESTION DE FICHIERS CHAPITRE 6 : LA GESTION DE FICHIERS Objectifs spécifiques Connaître la notion de fichier, ses caractéristiques Connaître la notion de répertoires et partitions Connaître les différentes stratégies d allocation

Plus en détail

PG208, Projet n 1 : Gestion d une bibliothèque

PG208, Projet n 1 : Gestion d une bibliothèque PG208, Projet n 1 : Gestion d une bibliothèque Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Travaux pratiques de traitement d images numériques. Institut Galilée 2010-2011

Travaux pratiques de traitement d images numériques. Institut Galilée 2010-2011 G. Dauphin et A. Beghdadi Travaux pratiques de traitement d images numériques Première séance Institut Galilée 2010-2011 Les travaux pratiques de traitement d image sont répartis en trois séances de 8

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

Utilisation des tableaux numériques

Utilisation des tableaux numériques 8 Utilisation des tableaux numériques Les tableaux représentent un type de stockage de données souvent utilisé en langage C. Le Chapitre 6 vous en a donné un bref aperçu. Aujourd hui, vous allez étudier

Plus en détail

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

USTL - Licence ST-A 1ère année 2005-2006 Codage de l information TP 1 : USTL - Licence ST-A 1ère année 2005-2006 Codage de l information TP 1 : Objectifs du TP Ce TP a pour but 1. de découvrir quelques opérations logiques sur les nombres 2. et quelques formats de fichiers.

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Langage procédural C

Langage procédural C Langage procédural Le langage C Laboratoire ISIR (email: ouarti@isir.upmc.fr) 2012 Qu est ce qu un algorithme Ici nous n étudierons que les algorithmes séquentiels Chaque instruction se fait l une à la

Plus en détail

TP2a : Windows 2008 Server et Active Directory + station windows 7

TP2a : Windows 2008 Server et Active Directory + station windows 7 TP2a : Windows 2008 Server et Active Directory + station windows 7 Description de la configuration et des objectifs du TP : Installer un serveur Windows 2008 contrôleur de domaine en machine virtuelle

Plus en détail

TP4 : Stockage de données

TP4 : Stockage de données TP4 : Stockage de données 1 TP4 : Stockage de données Programmation Mobile Objectifs du TP Ce TP a pour objectif de vous initier au stockage des données dans le téléphone Android, dans la mémoire interne

Plus en détail

TP2 : Windows 2003 Server et Active Directory

TP2 : Windows 2003 Server et Active Directory TP2 : Windows 2003 Server et Active Directory Description de la configuration et des objectifs du TP : Un serveur Windows 2003 contrôleur de domaine est accessible sur le réseau, son adresse IP vous sera

Plus en détail

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur APPLICATION On souhaite écrire un programme qui permet à l utilisateur de jouer au jeu de cartes 21. Principe : L utilisateur reçoit une carte à la fois et après chaque carte il décide s il continue ou

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

Plus en détail

Thème Image - TP1 - Images au format bitmap

Thème Image - TP1 - Images au format bitmap Université Joseph Fourier DLST UE MAP110/120 Année 2013-14 Thème Image - TP1 - Images au format bitmap Compte-ru Il vous est demandé de rédiger un compte-ru pour ce TP. Ouvrez en parallèle un document

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2012-2013 (2eme session) durée 2h Tous documents et calculatrices autorisés. Le sujet comporte 6 pages Le temps approximatif ainsi que le barème

Plus en détail

Notion de portée locale (1)

Notion de portée locale (1) Notion de portée locale (1) Les notions de portée locale v.s. globale définies pour les blocs sont également valides dans le cadre des fonctions 1. Comme dans le cas des blocs, la portée permet de résoudre

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Manuel d aide www.aixpoz.com

Manuel d aide www.aixpoz.com Manuel d aide www.aixpoz.com Introduction AIXPOZ est un système de création de sites Internet «galerie photo» à destination de toute personne souhaitant exposer des images sur Internet. Que vous soyez

Plus en détail

Les flux et les fichiers

Les flux et les fichiers Chapitres traités Hiérarchie des classes représentant le flot Les flux et les fichiers Depuis le temps, nous connaissons bien les objets cin et cout. Du moins nous semblons les connaître. Cette étude nous

Plus en détail

1. Eléments de base du langage C

1. Eléments de base du langage C 1 1. Eléments de base du langage C Généralités Programme et sous-programme Fonction C Structure d un programme C Vocabulaire de base et syntaxe Exemples 2 Généralités Crée en 1972 par D. Ritchie pour écrire

Plus en détail

Le fichier séquentiel [fs]

Le fichier séquentiel [fs] Le fichier séquentiel [fs] Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 17 avril 2015 Table des matières 1 Présentation 2 2 Exploitation d un document 3 3 Primitives

Plus en détail

Cours Langage C/C++ - Les chiers

Cours Langage C/C++ - Les chiers Cours Langage C/C++ - Les chiers Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Introduction Les chiers La notion d'enregistrement n'existant pas en C, un chier est vu comme une suite d'octets. Ceci

Plus en détail

IFT1169 Examen Final

IFT1169 Examen Final Trimestre Hiver, 2006 Mohamed Lokbani IFT1169 Examen Final Inscrivez tout de suite votre nom et code permanent. Nom: Prénom(s): Signature: Code perm: Date : mardi 18 avril 2006 Durée : 2 heures et 45 minutes

Plus en détail

UJF Licence Sciences INF 112. TP3 : Partie 1 : Les macros-commandes de Microsoft PowerPoint Partie 2 : Les macros-commandes de Microsoft Excel

UJF Licence Sciences INF 112. TP3 : Partie 1 : Les macros-commandes de Microsoft PowerPoint Partie 2 : Les macros-commandes de Microsoft Excel UFR IMA Informatique & Mathématiques Appliquées Grenoble 1 UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine : Partie 1 : Les macros-commandes de Microsoft PowerPoint Partie 2 : Les macros-commandes

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

De l ordinateur au processus : rôle d un système

De l ordinateur au processus : rôle d un système De l ordinateur au processus : rôle d un système Introduction aux systèmes d exploitation Gaël Thomas Présentation du cours Contexte du cours : Introduire notre objet d étude : les systèmes d exploitation

Plus en détail

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique Cours 3.307P: INFORMATIQUE EXAMEN FINAL DATE : Dimanche 8 décembre 1996 HEURE: DE 13h30 A 16h00

Plus en détail

Introduction à la programmation Travaux pratiques: séance 10 INFO0201-1. B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.

Introduction à la programmation Travaux pratiques: séance 10 INFO0201-1. B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac. Introduction à la programmation Travaux pratiques: séance 10 INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Programme de la séance Correction de la simulation d examen Questions

Plus en détail

Stéganographie : cacher du texte dans une image

Stéganographie : cacher du texte dans une image Département IMA / 3A (S5) Programmation Structurée 2012/2013 http://laure.gonnord.org/pro/teaching/ Sujet proposé par L. Gonnord sur une idée de T. Maurice (IMA3) Premier Projet de Développement Logiciel

Plus en détail

Simulation Numérique

Simulation Numérique Ecole Nationale de Techniques Avancées Simulation Numérique Chapitre 4 Surcharge des opérateurs Eric Lunéville Surcharge des opérateurs Le C++ utilise des opérateurs prédéfinis tels que + - * / sur les

Plus en détail

TP N o 5 - Shell scripts, Codage, compression, archivage

TP N o 5 - Shell scripts, Codage, compression, archivage IUT de Villetaneuse E. Viennet GTR 2ème année Introduction au Système UNIX 8/10/01 TP N o 5 - Shell scripts, Codage, compression, archivage EXERCICE 1 - On reprend les deux dernières questions du TP précédent,

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

Programmation impérative

Programmation impérative Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des

Plus en détail

2.5- Les flux. 1- Librairies de flux. 2- Manipulation de cin. 3- Lecture et écriture de fichiers. 4- Les flux et les chaînes

2.5- Les flux. 1- Librairies de flux. 2- Manipulation de cin. 3- Lecture et écriture de fichiers. 4- Les flux et les chaînes 2.5- Les flux 1- Librairies de flux 2- Manipulation de cin 3- Lecture et écriture de fichiers 4- Les flux et les chaînes 5- Passage de paramètres en ligne de commande 6- Un exemple de récupération CSV

Plus en détail

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures) L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin

Plus en détail

Projet de cryptographie. Algorithme de cryptage de type Bluetooth

Projet de cryptographie. Algorithme de cryptage de type Bluetooth Projet de cryptographie Algorithme de cryptage de type Bluetooth Le but de ce projet est de créer une application qui crypte et décrypte des fichiers en utilisant le principe de cryptage du Bluetooth.

Plus en détail

Notes sur la compilation séparée

Notes sur la compilation séparée Annexe B Notes sur la compilation séparée Ce document est probablement imparfait, mais il devrait déjà donner une introduction raisonnable au sujet traité... B.1 Introduction La compilation séparée est

Plus en détail

Corrigé du TP Carte SIM

Corrigé du TP Carte SIM Corrigé du TP Carte SIM Outil GScriptor Il faut d abord télécharger GScriptor : http://www.springcard.com/download/find.php?file=gscriptor et l installer sous Windows. Depuis Windows 7, il n est pas nécessaire

Plus en détail

Les références et la mémoire

Les références et la mémoire Chapitre 3 Les références et la mémoire 3.1 Introduction En Java, pour déclarer une variable, il faut donner son nom, précédé du type qu on souhaite lui attribuer. Ces types peuvent être des types primitifs

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

TS214 - Compression/Décompression d une image binaire

TS214 - Compression/Décompression d une image binaire Filière Télécommunications, 2 ème année TS214 - Compression/Décompression d une image binaire De nombreux télécopieurs utilisent la recommandation T.4 Groupe 3 de l International Telecommunications Union

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Préparation à réaliser avant le début du TP

Préparation à réaliser avant le début du TP Préparation à réaliser avant le début du TP Soit une suite de points p 0,p 1,... p n du plan (n>=3). On cherche à approximer l'ensemble de ces points par une droite. Écrivez le système d'équations (sur

Plus en détail

3 : LA COMPRESSION DE DONNEES

3 : LA COMPRESSION DE DONNEES 3 : LA COMPRESSION DE DONNEES Représentation de l information Algorithmique Langages et programmation Architectures matérielles CONNAISSANCES ABORDEES Numérisation : Coder sous forme d'un code standard

Plus en détail

Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A

Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A Djamel Aouane, Frederic Devernay, Matthieu Moy Mars - avril 2015 1 Manipulations de fichiers Pour organiser des

Plus en détail

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques

Plus en détail

Mathématiques/Sciences Physiques Séance N 8 Codage d une image numérique

Mathématiques/Sciences Physiques Séance N 8 Codage d une image numérique Mathématiques/Sciences Physiques Séance N 8 Codage d une image numérique INTRODUCTION Une image numérique est un ensemble discret de points appelés PIXELS (contraction de PICTure ELements). Elle a pour

Plus en détail

Exemples d'activités sur les images numériques

Exemples d'activités sur les images numériques Annexe 1 1 Accès aux composantes RVB d un pixel dans GIMP Pour agrandir l image : touche Ctrl maintenue enfoncée tout en tournant la molette de la souris, ou bien menu Affichage > Zoom > 1600 % Dans la

Plus en détail

Licence E.E.A. TD N 2 de Langage C/C++

Licence E.E.A. TD N 2 de Langage C/C++ TD N 2 de Langage C/C++ 1 Licence E.E.A. TD N 2 de Langage C/C++ Ce TD a pour objectif de vous faire découvrir et utiliser le langage C et peut être C++. Il s agira de transcrire sous la forme d un programme

Plus en détail

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de:

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: C, seconde séance le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: false, c est 0 ( \0 aussi) test d égalité: == pour printf: %d entier, %f flottant, %c caractère,

Plus en détail

Formats d images. 1 Introduction

Formats d images. 1 Introduction Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

L3 Sciences Pour l Ingénieur - Outils Informatiques Travaux Pratiques

L3 Sciences Pour l Ingénieur - Outils Informatiques Travaux Pratiques http://www.ups-tlse.fr L3 Sciences Pour l Ingénieur - Outils Informatiques Travaux Pratiques TP n 5 Mars 2013 Quelques conseils de travail Avant de poser une question à votre enseignant, expérimentez par

Plus en détail

Module d anonymisation

Module d anonymisation Module d anonymisation Préambule Ce module permet d «anonymiser» un fichier, c est à dire de masquer les informations qu il contient en fonction de règles préalablement spécifiées. Le fichier généré par

Plus en détail

Introduction à la programmation sous Scilab : TP auto-correctifs II

Introduction à la programmation sous Scilab : TP auto-correctifs II Introduction à la programmation sous Scilab : TP auto-correctifs II Licence de Physique à distance Table des matières I Vecteurs et matrices (II) 1 a) Vecteurs........................................ 1

Plus en détail

Algorithmique Programmation

Algorithmique Programmation Algorithmique Programmation 2ème partie DUT en alternance CNAM 2007-2008 2 Table des matières 1 Premiers Pas en Programmation Objet : les Classes et les Objets 7 1.1 Définir une Classe........................................

Plus en détail

TP1 : Introduction à MATLAB

TP1 : Introduction à MATLAB TP1 : Introduction à MATLAB Table des matières 1 Objectif du cours et du TP 2 1.1 Généralités...................................... 2 1.2 But de ce TP..................................... 2 2 Mise en route

Plus en détail