Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parRenart Lebrun Modifié depuis plus de 10 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.