From 786aa2e6d8543686701589c0e36d7309e573a0fc Mon Sep 17 00:00:00 2001 From: kachelto100370 Date: Tue, 25 Nov 2025 10:53:28 +0100 Subject: [PATCH] working on imageinput --- .gitignore | 2 ++ imageInput.c | 46 +++++++++++++++++++++++++++++----------------- makefile | 14 +++++++------- 3 files changed, 38 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index 2652f66..2581994 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ runTests .vscode/launch.json .vscode/settings.json .vscode/settings.json +runImageInputTests +testFile.info2 diff --git a/imageInput.c b/imageInput.c index 185627a..2e07f9c 100644 --- a/imageInput.c +++ b/imageInput.c @@ -6,9 +6,6 @@ #define BUFFER_SIZE 100 #define FILE_HEADER_STRING "__info2_image_file_format__" -const unsigned short anzahlBilder; -const unsigned short breiteBilder; -const unsigned short hoeheBilder; // TODO Implementieren Sie geeignete Hilfsfunktionen für das Lesen der Bildserie aus einer Datei GrayScaleImage readImage() { @@ -18,26 +15,41 @@ GrayScaleImage readImage() // TODO Vervollständigen Sie die Funktion readImages unter Benutzung Ihrer Hilfsfunktionen GrayScaleImageSeries *readImages(const char *path) { - const char * headOfFile; - char sizeOfChar = "a"; - const unsigned int numElemenHead = 28;//Anzahl von char in FILE_HEADER_STRING - GrayScaleImageSeries * series; - FILE *file = fopen("mnist_test.info2","rb"); - if(file == NULL) { //check ob datei gelesen wurde + unsigned short * numImages; + unsigned short * breiteBilder; + unsigned short * laengeBilder; + + GrayScaleImageSeries *series = NULL; + FILE *file = fopen(*path,"rb"); + char * headOfFile; + + fread(headOfFile, sizeof(FILE_HEADER_STRING),1, file); //liest den header ein und überprüft ob korrekte datei + + if(strcmp(headOfFile, FILE_HEADER_STRING) != 0) return NULL; - } - else{ - fread(headOfFile, sizeof(FILE_HEADER_STRING), 1, file); + + // liest numIMages, breite und länge der Bilder ein + fseek(file, sizeof(FILE_HEADER_STRING), SEEK_SET); + fread(numImages, sizeof(short), 1, file); + + fseek(file, sizeof(short), SEEK_CUR); + fread(breiteBilder, sizeof(short), 1, file); + + fseek(file, sizeof(short), SEEK_CUR); + fread(laengeBilder, sizeof(short), 1, file); + + series = malloc(*numImages * *breiteBilder * *laengeBilder * sizeof(short)); + + for(int i = 0; i < numImages; i++) + { + } - if(strcmp(FILE_HEADER_STRING, headOfFile) != 0) //checkt ob datei die richtige ist durch header - return NULL; - - + return series; } // TODO Vervollständigen Sie die Funktion clearSeries, welche eine Bildserie vollständig aus dem Speicher freigibt void clearSeries(GrayScaleImageSeries *series) { - free(series); + } \ No newline at end of file diff --git a/makefile b/makefile index 5d94684..fec7f2d 100644 --- a/makefile +++ b/makefile @@ -57,12 +57,12 @@ imageInputTests: imageInput.o imageInputTests.c $(unityfolder)/unity.c # -------------------------- # Clean # -------------------------- -#clean: -#ifeq ($(OS),Windows_NT) -# del /f *.o *.exe -#else -# rm -f *.o mnist runMatrixTests runNeuralNetworkTests runImageInputTests -#endif -# clean für windows +clean: +ifeq ($(OS),Windows_NT) + del /f *.o *.exe +else + rm -f *.o mnist runMatrixTests runNeuralNetworkTests runImageInputTests +endif + clean für windows clean: rm -f *.o *.exe \ No newline at end of file