La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 PROGRAMMATION SCIENTIFIQUE EN C PRO-1027

2 Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C sur SUN (exemples de programme) –Utilitaire make –Utilitaire daffichage

3 Environnement de travail u 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)

4 Environnement de travail (langage C) u Étapes de segmentation dune image pour la détection des perturbations –Lire limage source dans un vecteur –Créer le vecteur contenant limage résultante –Traiter limage source de façon à détecter les perturbations –Écrire limage résultante –Libérer la mémoire

5 Environnement de travail (langage C) u Image source

6 Environnement de travail (langage C) u Image résultante possible

7 Environnement de travail (langage C) u 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 imageS imageD h l si ss argv imageD h l imageS imageD argc argv

8 Environnement de travail (langage C) u 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

9 Environnement de travail (langage C) u Rappel sur les pointeurs ptr 0 1 2 3 4 5 6 7 0 1 2 3 4 5

10 Environnement de travail (langage C) u 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); */

11 Environnement de travail (langage C) u 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 */ }

12 Environnement de travail (langage C) u 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 LIMAGE */ return(vec);

13 Environnement de travail (langage C) u Fonction lire_image_source_VEC() 0 1 2 3 4 5 6 7 0 1 2 3 4 5 0 1 Tableau logique Vecteur physique

14 Environnement de travail (langage C) u Accès à un emplacement dun 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 */

15 Environnement de travail (langage C) u Procédure detection_perturbation_VEC() /* LA BOUCLE POUR */ for(i=0;i<h*l;i++) { }

16 Environnement de travail (langage C) u 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);

17 Environnement de travail (langage C) u Procédure liberer_memoire_VEC() /* LIBERER LA MEMOIRE */ free(imageS);

18 Environnement de travail (langage C) u Fichier traitement.h –Contient les constantes (ex: NBARG) –Et les prototypes des en-têtes de fonctions et procédures

19 Environnement de travail (langage C) u 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

20 Environnement de travail (langage C) u Utilitaire make (utilisation) –Éditer le fichier Makefile –Pour lancer lutilitaire make »taper make

21 Environnement de travail (langage C) u Utilitaire daffichage dimages –Convertir les images.raw en images.pgm rawtopgm 842 740 /u/dmatensr/meunier/pro1027/images/g8ir_080198.raw > r.pgm –Affichage des images xv r.pgm

22 Environnement de travail (langage C) u Exemple dutilisation du programme Nom du fichier exécutable: detecter_perturbation_MAIN_VEC argument 1: /u/dmatensr/meunier/pro1027/images/g8ir_080198.raw argument 2: /u/dmatensr/meunier/pro1027/images/g8ir_080198_SEG.raw argument 3: 740 argument 4: 842 argument 5: 190 argument 6: 195

23 Environnement de travail (langage C) u Exemple dutilisation du programme /u/dmatensr/meunier/pro1027/images/g8ir_080198.raw

24 Environnement de travail (langage C) u Exemple dutilisation du programme /u/dmatensr/meunier/pro1027/images/g8ir_080198_SEG_190_195.raw

25 Environnement de travail (langage C) u Exemple dutilisation du programme /u/dmatensr/meunier/pro1027/images/g8ir_080198_SEG_205_215.raw


Télécharger ppt "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."

Présentations similaires


Annonces Google