PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours...

25
PROGRAMMATION SCIENTIFIQUE EN C PRO-1027

Transcript of PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours...

Page 1: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

PROGRAMMATION SCIENTIFIQUE EN C

PRO-1027

Page 2: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Généralités

Présentation du plan de cours– Disponibilité

– Références Environnement de travail

– Langage C sur SUN (exemples de programme)

– Utilitaire make

– Utilitaire d’affichage

Page 3: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail

Le langage C est utilisé comme langage de programmation de base pour le cours– Exemples de programmes en C

(/u/dmatensr/meunier/pro1027/exemplesMAKE/exemples_meteo)

– Images utilisées dans les exemples(/u/dmatensr/meunier/pro1027/images)

Page 4: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Étapes de segmentation d’une image pour la détection des perturbations– Lire l’image source dans un vecteur

– Créer le vecteur contenant l’image résultante

– Traiter l’image source de façon à détecter les perturbations

– Écrire l’image résultante

– Libérer la mémoire

Page 5: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Image source

Page 6: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Image résultante possible

Page 7: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Diagramme de contrôle

detecter_perturbation_MAIN_VEC

detecter_perturbation_VEC

creer_image_destination_VEC

lire_image_source_VEC

ecrire_image_destination_VEC

liberer_memoire_VEC

argv h l

argv h l

imageSimageDh l si ss

argvimageD h l

imageS imageD

argc argv

Page 8: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Rappel sur les pointeurs

ptr

char *ptr;char car;

ptr = (unsigned char *) malloc(8);car = ptr[1];car = *(ptr+1);

0 1 2 3 4 5 6 7

Page 9: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Rappel sur les pointeurs

ptr

0 1 2 3 4 5 6 7

0

1

2

3

4

5

Page 10: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Rappel sur les pointeurs

char **ptr; /* *ptr[] */char *ptr_char; /* ptr_char[] */char car;

ptr = (unsigned char **) malloc(sizeof(unsigned char *) * 6);

ptr [1] = (unsigned char *) malloc(sizeof(unsigned char) * 8);

ptr_char = ptr [1]; /* = *(ptr+1); */

car = ptr [1] [1]; /* = *(*(ptr+1)+1); */car = ptr_char [1]; /* = *(ptr_char+1); */

Page 11: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Programme principal (detecter_perturbation_MAIN_VEC)

/* LA CONDITIONNELLE */if(argc == NBARG){ /* CONDITION VRAIE */ h = atoi(argv[3]); /* CONVERTION DE TYPE */ } else{ /* CONDITION FAUSSE */ printf(“\n Nombre …..”); exit(1); /* SORTIR DU PROGRAMME */ }

Page 12: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Fonction lire_image_source_VEC()/* OUVERTURE, LECTURE ET FERMETURE DE FICHIER */FILE fp1;

fp1 = fopen(argv[1],“r”); fread(vec,sizeof(unsigned char),h*l,fp1);fclose(fp1);

/* RETOURNER LE POINTEUR SUR L’IMAGE */return(vec);

Page 13: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Fonction lire_image_source_VEC()0 1 2 3 4 5 6 7

0

12345

0 1

Tableau logique

Vecteur physique

Page 14: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Accès à un emplacement d’un tableau stocké dans un vecteur

int i,j;unsigned char pixel;

i = j = 1;pixel = vec[i*8+j]; /* i est le numéro de rangée et j celui de la colonne */

Page 15: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Procédure detection_perturbation_VEC()

/* LA BOUCLE POUR */for(i=0;i<h*l;i++){}

Page 16: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Procédure ecrire_image_destination_VEC()/* OUVERTURE, ECRITURE ET FERMETURE DE FICHIER */FILE fp1;

fp1 = fopen(argv[2],“w”); fwrite(imageD,sizeof(unsigned char),h*l,fp1);fclose(fp1);

Page 17: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Procédure liberer_memoire_VEC()/* LIBERER LA MEMOIRE */

free(imageS);

Page 18: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Fichier traitement.h– Contient les constantes (ex: NBARG)

– Et les prototypes des en-têtes de fonctions et procédures

Page 19: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Utilitaire make– Permet la compilation séparée des procédures et

fonctions

– Permet la création de librairies

– Permet de créer un fichier exécutable

Page 20: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Utilitaire make (utilisation)– Éditer le fichier Makefile

– Pour lancer l’utilitaire make » taper make

Page 21: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Utilitaire d’affichage d’images– Convertir les images .raw en images .pgmrawtopgm 842 740 /u/dmatensr/meunier/pro1027/images/g8ir_080198.raw > r.pgm

– Affichage des images

xv r.pgm

Page 22: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Exemple d’utilisation du programme

Nom du fichier exécutable: detecter_perturbation_MAIN_VEC

argument 1: /u/dmatensr/meunier/pro1027/images/g8ir_080198.rawargument 2:

/u/dmatensr/meunier/pro1027/images/g8ir_080198_SEG.rawargument 3: 740argument 4: 842argument 5: 190argument 6: 195

Page 23: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Exemple d’utilisation du programme

/u/dmatensr/meunier/pro1027/images/g8ir_080198.raw

Page 24: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Exemple d’utilisation du programme

/u/dmatensr/meunier/pro1027/images/g8ir_080198_SEG_190_195.raw

Page 25: PROGRAMMATION SCIENTIFIQUE EN C PRO-1027. Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.

Environnement de travail (langage C)

Exemple d’utilisation du programme

/u/dmatensr/meunier/pro1027/images/g8ir_080198_SEG_205_215.raw