diff --git a/imageInput.c b/imageInput.c index bb30de1..36942f1 100644 --- a/imageInput.c +++ b/imageInput.c @@ -5,12 +5,59 @@ #define BUFFER_SIZE 100 #define FILE_HEADER_STRING "__info2_image_file_format__" +#define FILE_HEADER_SIZE (sizeof(FILE_HEADER_STRING)-1) + // TODO Implementieren Sie geeignete Hilfsfunktionen für das Lesen der Bildserie aus einer Datei +FILE *checkFile(const char *path) +{ + FILE *datei = fopen(path,"rb"); + if (datei == NULL) + { + perror("Datei konnte nicht geoeffnet werden"); + return NULL; + } + char buffer[FILE_HEADER_SIZE+1]; + if (fread(buffer,1,FILE_HEADER_SIZE,datei)!=FILE_HEADER_SIZE) + { + perror("Header konnte nicht eingelessen werden"); + fclose(datei); + return NULL; + } + buffer[FILE_HEADER_SIZE] = '\0'; + if (strcmp(buffer,FILE_HEADER_STRING)!=0) + { + printf("Falscher Dateikopf"); + //printf("\n%s",buffer); + //printf("\n%s",FILE_HEADER_STRING); + //printf("\n%d",strcmp(buffer,FILE_HEADER_STRING)); + fclose(datei); + return NULL; + } + return datei; +} // TODO Vervollständigen Sie die Funktion readImages unter Benutzung Ihrer Hilfsfunktionen GrayScaleImageSeries *readImages(const char *path) { + FILE *datei = checkFile(path); + if (datei==NULL) + { + return NULL; + } + unsigned short image_count, width, height; + fread(&image_count,1,sizeof(unsigned short),datei); + fread(&width,1,sizeof(unsigned short),datei); + fread(&height,1,sizeof(unsigned short),datei); + //printf("%u Bilder und %u mal %u",image_count,width,height); + + fclose(datei); + + + + + + GrayScaleImageSeries *series = NULL; return series; diff --git a/imageInput.h b/imageInput.h index 656e213..eadbf87 100644 --- a/imageInput.h +++ b/imageInput.h @@ -19,5 +19,5 @@ typedef struct GrayScaleImageSeries *readImages(const char *path); void clearSeries(GrayScaleImageSeries *series); - +FILE *checkFile(const char *path); #endif diff --git a/main.c b/main.c index a95cba3..4b440a7 100644 --- a/main.c +++ b/main.c @@ -1,11 +1,13 @@ #include #include #include "imageInput.h" -#include "mnistVisualization.h" -#include "neuralNetwork.h" +//#include "mnistVisualization.h" +//#include "neuralNetwork.h" int main(int argc, char *argv[]) { + readImages("mnist_test.info2"); + /* const unsigned int windowWidth = 800; const unsigned int windowHeight = 600; @@ -65,4 +67,5 @@ int main(int argc, char *argv[]) } return exitCode; + */ } \ No newline at end of file