|
#1
| |||
| |||
| J'ai un projet de C à faire sur la création d'un environnement logiciel de traitement d'images. En revanche l'énoncé est un peu long, je ne peux alors pas le mettre sur le forum. Si quelqu'un avait la gentillesse de m'aider. Je peux envoyer l'énoncé par mail. Merci d'avance |
|
#3
| ||||
| ||||
| Citation:
![]() |
|
#4
| ||||
| ||||
| Et surtout qu'il aura plus de proposition ![]() |
|
#5
| |||
| |||
| En langage C sous DevCpp « ProjetCTrIm » -Deux répertoires : « Projet » contenant les projets DevCpp ainsi que les éxécutables correspondants « src » contenant les fichiers sources(.c) inclure(.h) développés ainsi que les objets (.o) génrérés pas DevCpp. -différents fichiers : struct.h fichier comportant les structures de données utilisées ainsi que les macros d’accès aux données. Utils.c et utils.h fichier qui contiennent respectivement les fonctionnalités de l’environnement logiciel, traduites sous form de fonctions en langage C (utils.c) et les prototypes de ces fonctions (utils.h) Oper.c sorte d’interface entre l’utilisateur et l’ordinateur, dont nous développerons les fonctionnalités plus loin, comportant le programme principal « main() » et appelant la fonction de l’opérateur LibOper.c et LibOper.h fichiers comportant pour l’un les définitions, pour l’autre les protypes des fonctions en langage C réalisant la fonctionnalité de l’Opérateur. 1) Ecrire dans le fichier « utils.c » la fonction « LecureEntetePGM ()» de prototype :int LectureEntetePGM (File *fp, int *pnlig, int *pncol) ; Retour : 0 : fichier non PGM ; 1 : OK Pnlig : pointeur sur le nombre de ligne Pncol : pointeur sur le nombre de colonnes Qui teste le « magic number » puis en cas de fichier « .pgm » transmet en paramètres le nombre de lignes, de colonnes, et en valeur de retour un code d’erreur. Attention cette fonction devra également lire la valeur 255, ainsi que les caractères de contrôle suivants ! 2) Dans le fichier Struct.h définir le structure image comportant les champs suivants : Un entier : nlig : nombre de lignes Un entier : ncol :nombre de colonnes Un octet non signé : prof :la profondeur, le nombre d’octets par pixel Un pointeur sur octet non signé : ptim : un pointeur sur les données (valeurs des pixels de l’image) 3) Dans le même fichier nous allons maintenant écrire les macros d’accès. A l’aide du modèle de la macro NLIG() ci-dessous définir les macros NCOL() et PROF() #define NLIG (XX) ((XX)->nlig) /*pour obtenir le nombre de lignes*/ La macro crea_IMAGE() dont l’expression est donnée ci-dessous réalise l’allocation dynamique de mémoire de la variable de type IMAGE. Elle est ç inclure dans le fichier struct.h #define crea_IMAGE(XX) ((XX) = (Image *)malloc(sizeof(IMAGE))) 4) Commenter la macro « crea_IMAGE (XX)»notamment au niveau des types et changements de types 5) Ecrire dans le fichier « utils.c » la fonction « CreationImage() » de prototype ci-dessous Int CreationImage(IMAGE *image, int nlig, int ncol, unsigned char prof) Retour : 0 : Erreur de creation ; 1 : OK nlig pointeur sur le nombre de lignes ncol : pointeur sur le nombre de colonnes prof : profondeur remarque : les valeurs 1 et 3 de la profondeur seront prises en compte 6) Ecrire dans le fichier « utils.c » la donction « LectureImage() » de prototype ci-dessous Int LectureImage (FILE *fp, IMAGE *image) Retour : 0 : erreur de lecture ; 1 : OK Arguments : fp : descripteur de fichier ; image : pointeur sur la variable structurée remarque : les valeurs 1 et 3 de la profondeur seront prises en compte 7) Réaliser ensuite les fonctionnalités manquantes parmi : -Validation du bon nombre de paramètres transmis sinon envoi du « mode d’emploi » -Récupération des paramètres transmis et ouverture des fichier images source : imsrc.pgm et résultat : imres.pgm -Lecture de l’entête du fichier image source :taille de l’image -Création des structures images : entête = données -Lecture des données de l’image source -Appel de l’opérateur -Enregistrement de l’entête du fichier image « EcritureEntetePGM() » dans le fichier « utils.c » et de prototype suivant : Int EcritureImage (FILE *fp, IMAGE *image) Retour : 0 : Erreur d’Ecriture ; 1 : OK Fp : description de fichier Image : pointeur sur la variable structurée remarque : les valeurs 1 et 3 de la profondeur seront prises en compte -Enregistrement des données du fichier image « EcritureImage() » -Fermeture des fichiers -Libération de la mémoire allouée (données et variables structurées) « LibereImage() » dans le fichier « utils.c » et de prototype suivant : Void LibereImage(IMAGE *image) Image : pointeur sur la variable structurée 8) Valider l’ensemble en écrivant dans le fichier « fpres » l’image « imsrc » |
|
#6
| ||||
| ||||
| Citation:
http://netpbm.sourceforge.net/ Tu pourras economiser enormement de temps... Voila par exemple le pgm.h de cette bibliotheque, pour te donner une idee: Citation:
|
|
#7
| ||||
| ||||
| Citation:
Il y a aussi la GD librairie pour le traitement d'image en général www.boutell.com/gd/ Elle pourra être utilisée avec plusieurs langages C, Perl, PHP...en plus OpenSource Mais je crois qu'il veut créer ses propres structures Au passage merci pour le lien |
|
#8
| ||||
| ||||
| @Scorfano et Farid, je crois que le but du programme est d'écrire des fonctions de lecture de fichiers PGM et non d'utiliser les fonctions déjà existantes. ![]() @ gamblers: j'ai pas bcp de temps là mais j'y reviendrai incha'allah. |
|
#9
| ||||
| ||||
| Citation:
![]() Mais si c'est pour un code destine a la production, il vaut vraiment mieux reutiliser un code qui a ete scrupuleusement scrutine que de reinventer la roue. C'est tres facile d'introduire des off-by-one bugs et autres erreurs dans ce genre de code; et peng! on a une vulnerabilite aux virus de plus. ![]() |
|
#10
| ||||
| ||||
| C'est ce que je pense aussi, les fonctions de bases et l'interface graphique |
![]() |
| Outils de la discussion | |
| Modes d'affichage | |
|
|
Discussions similaires | ||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| [Sujet unique: Questions - réponses] | Forum Islam | 5904 | 08/10/2008 19h01 | |
| Maroc: Reporters sans Frontières dénonce un projet de code de la presse | kamomille | Forum Culturel | 1 | 18/07/2007 12h08 |
| Le projet FèsShore sur les rails | petitbijou | Actualités marocaines | 0 | 22/06/2007 21h27 |
| Projet d’autonomie : La douche froide ONU | Saife | Actualités marocaines | 10 | 03/05/2007 15h19 |
| Modélisation en langage C | turbo_chess | Informatique | 3 | 09/02/2007 13h11 |