Rechercher : dans
Par :

Ouvrir une image avec le language c??

Dernière réponse le 7 mai 2009 à 10:45:10 madjid, le 6 nov 2007 à 19:25:48 
 Signaler ce message aux modérateurs

Bonjour, je veux appliquer des traitement sur une image dans le language c à l'aide d'un algorithme(moyen mobile) et je n'arrive pas a l'ouvrir pour la représenter sous forme de pixel dans une structure de données adéquate ?

Configuration: Windows 2000
Internet Explorer 6.0

Meilleures réponses pour « ouvrir une image avec le language c?? » dans :
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

fiddy, le 6 nov 2007 à 20:09:41
  • +2

Salut

Quel format d'image, BMP ?
Sinon, tu dois créer ta structure toi-même.
Par exemple :

typedef struct {
   unsigned char **donnees;
   int hauteur;
   int largeur;
   int magicNumber;
} structImg;



Et pour l'initialisation :

On a en premier le magic number.
Les lignes suivantes sont des commentaires. (Avec un #)
Après, tu récupères la largeur de l'image et la hauteur.

Tu dois ensuite allouer image.donnees
structImg image;
int i;

image.donnees=(unsigned char**)calloc(image.hauteur,sizeof(unsigned char*));
*image.donnees=(unsigned char*)calloc(image.hauteur*image.largeur,sizeof(unsigned char));

for(i=1;i<image.hauteur;i++)
   image.donnees[i] = image.donnees[i-1] + image.largeur;


Et enfin le remplissage du champ donnees ;
for(i=0;i<image.hauteur*image.largeur;i++){
   fscanf(fpInput,"%d",&pixel);  /*fpInput =fopen("image.bmp","r"); a faire au debut */
   image.donnees[i/image.largeur][i%image.largeur]=(unsigned char)pixel
}



Si tu as des questions, n'hésite pas.
Google is your friend

Répondre à fiddy

2

sandra84, le 8 déc 2007 à 22:47:49
  • +1

J'ai pas trouver de soltion pour ouvrir un fichier image .bmp et faire de la fausse couleur, extraction des contours, atténuation de la lumière ou au contraire amplification de la lumièr si vous avez des ideés svp aidez moi merci.

Répondre à sandra84

3

 forestmann, le 7 mai 2009 à 10:45:10

Bonjour fiddy meme si le sujet est ancien, mais je viens de le decouvrir LOL,mais juste une petite remarque tu parlais des image de format .pgm car je vois que tu as introduit un nmbre magic la bas?

Répondre à forestmann