1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
#include <iostream>
#include "cerrno"
#include "cstring"
#include <cstdio>
#include <cstdlib>
using namespace std;
FILE *fichier;
int ***Data;
typedef struct
{
int size_x;
int size_y;
int size_z;
int longueur;
unsigned char* data_name;
} Image;
typedef Image *P_Image;
P_Image picture;
char *buffer;
int main()
{
cout << "Hello World!" << endl;
fichier = fopen("shepplogan.pgm3D", "r") ;// lecture du fichier
if(fichier== NULL)
{
printf("\n\n\nerror can t open the file:%s\n",strerror(errno));
exit(EXIT_FAILURE);
}
fseek(fichier, 5, SEEK_SET); // le curseur se positionne apres 'PGM3D'
fscanf(fichier, "%d %d %d", &(picture->size_x), &(picture->size_y), &(picture->size_z)); // lecture taille de l'image
picture->longueur=(picture->size_x)*(picture->size_y)*(picture->size_z);
//le constructeur aloue la memoire pour le fichier
int ***Data=(int ***)malloc(picture->size_x*sizeof(int**));
for(int i= 0; i < picture->size_x; i++)
{
Data[i]= (int **)malloc(picture->size_y*sizeof(int*));
for(int j= 0; j < picture->size_y; j++)
{
Data[i][j]= (int *)malloc(picture->size_z*sizeof(int));
}
}
fscanf(fichier,"%s",buffer);
printf("taille de l'image : %d, %d, %d, \n ", picture->size_x, picture->size_y, picture->size_z );
printf("longueur= %d \n", picture->longueur);
printf("magic number=%s\n",buffer);
//enregistrement des donnees de fileName.pgm3D dans Data
for (int i=0; i < picture->size_x; i++)
{
for (int j=0; j < picture->size_y; j++)
{
for (int z=0; z < picture->size_z; z++)
{
fscanf(fichier,"%s",buffer);
Data[i][j][z]=atoi(buffer);
/* TEST
indice++;
if(indice==224229)
printf("data=%d\n",data[i][j][z]);*/
}
}
}
fclose(fichier);
return 0;
} |
Partager