diff --git a/imageInput.c b/imageInput.c index b7d0264..86e5f47 100644 --- a/imageInput.c +++ b/imageInput.c @@ -13,43 +13,50 @@ GrayScaleImageSeries *readImages(const char *path) { GrayScaleImageSeries *series = NULL; - FILE *readSource; - unsigned int sizeOfByteInBytes = 1; - unsigned int numberOfBytesToRead = 1; + // selbst geschriebene Variablen + FILE *readSource; + int i = 0; + unsigned int numberOfBytesToRead = 0; + unsigned int amountOfStatusInfoToRead = 1; + char headerString[sizeof("__info2_image_file_format__")]; + + readSource = fopen(path, "rb"); - if (readSource = NULL) + if (readSource != NULL) { - //error datei nicht gefunden + + // dateiaufbau: + + // string __info2_image_file_format__ + fread(headerString, sizeof(headerString), amountOfStatusInfoToRead, readSource); + // INT - Anzahl der Bilder + fread(&(series->count), sizeof(series->count), amountOfStatusInfoToRead, readSource); + // INT - Breite eines Bildes (Pixel) + fread(&(series->images->width), sizeof(series->images->width), amountOfStatusInfoToRead, readSource); + // INT - Höhe eines Bildes (Pixel) + fread(&(series->images->height), sizeof(series->images->height), amountOfStatusInfoToRead, readSource); + // Bis hier alles nur einmal durchführen + + numberOfBytesToRead = (series->images->width) * (series->images->height); + // bufferspeicher anlegen der unsigned char pointer + // mit anzahl der pixel als größe ist um dann + // grauwerte in diesen buffer zu schreiben + // (grayscale pixeltype in grayscale image series) + series->images->buffer = calloc((series->count) * numberOfBytesToRead, sizeof(GrayScalePixelType)); + // zusätzlich auch speicher anlegen der für die labels da ist + series->labels = calloc((series->count), sizeof(&(series->labels))); + // AB HIER Schleife die für + // anzahl der Bilder je die Bytes und das Label einließt + for (i = 0; i <= (series->count); i++) + { + fread((series->images->buffer + i * numberOfBytesToRead), sizeof(&(series->images->buffer)), numberOfBytesToRead, readSource); + fread((series->labels + i), sizeof(&(series->labels)), amountOfStatusInfoToRead, readSource); + } } + + fclose(readSource); - // dateiaufbau: - - // string __info2_image_file_format__ - fread(/*pufferHier*/, /*Stringsize*/, 1, readSource); - // INT - Anzahl der Bilder - fread(/*pufferHier*/, /*sizeOf(int)*/, 1, readSource); - // INT - Breite eines Bildes (Pixel) - fread(/*pufferHier*/, /*sizeOf(int)*/, 1, readSource); - // INT - Höhe eines Bildes (Pixel) - fread(/*pufferHier*/, /*sizeOf(int)*/, 1, readSource); - // Bis hier alles nur einmal durchführen - // AB HIER Schleife implementieren die für - // anzahl der Bytes Byte einließt - // bufferspeicher anlegen der unsigned char pointer - // mit anzahl der pixel als größe ist um dann - // grauwerte in diesen buffer zu schreiben - // (grayscale pixeltype in grayscale image series) - // BYTES - Je mit GraustufenInfo von 0-255 - // bytezahl = breite_Pixel * höhe_Pixel - fread(/*pufferHier*/, sizeOfByteInBytes, numberOfBytesToRead, readSource); - // INT - Label welche Zahl dargestellt ist (0-9) - // AB HIER Schleifenende - - // folgendes nur einmal ausführen - fread(/*pufferHier*/, /*sizeOf(unsigned char)*/, 1, readSource); - - //fclose(readSource); return series; }