generated from freudenreichan/info2Praktikum-NeuronalesNetz
in imageinput.c Hilfsfunktionen und readimages implementiert, 2 von 6 passes
This commit is contained in:
1 parent
127f93301f
commit
570e3fa930
2 files changed
+53
-17
No files matched your search
+52
-17
@@ -7,48 +7,83 @@
|
||||
#define FILE_HEADER_STRING "__info2_image_file_format__"
|
||||
|
||||
// TODO Implementieren Sie geeignete Hilfsfunktionen für das Lesen der Bildserie aus einer Datei
|
||||
static unsigned short readNumberOfImages(const char *path)
|
||||
static unsigned short readNumberOfImages(FILE *file)
|
||||
{
|
||||
unsigned short numberOfImages = 0;
|
||||
fseek(path, sizeof(char)*strlen(FILE_HEADER_STRING)-1, SEEK_SET);
|
||||
fread(numberOfImages, sizeof(unsigned short), 1, path);
|
||||
fseek(file, strlen(FILE_HEADER_STRING), SEEK_SET);
|
||||
fread(&numberOfImages, sizeof(unsigned short), 1, file);
|
||||
return numberOfImages;
|
||||
}
|
||||
|
||||
static unsigned short readImageWidth(const char *path)
|
||||
static unsigned short readImageWidth(FILE *file)
|
||||
{
|
||||
unsigned short ImageWidth = 0;
|
||||
fseek(path, sizeof(unsigned short), SEEK_CUR);
|
||||
fread(ImageWidth, sizeof(unsigned short), 1, path);
|
||||
fseek(file, sizeof(unsigned short), SEEK_CUR);
|
||||
fread(&ImageWidth, sizeof(unsigned short), 1, file);
|
||||
|
||||
return ImageWidth;
|
||||
}
|
||||
|
||||
static unsigned short readImageHeight(const char *path)
|
||||
static unsigned short readImageHeight(FILE *file)
|
||||
{
|
||||
unsigned short ImageHeight = 0;
|
||||
fseek(path, sizeof(unsigned short), SEEK_CUR);
|
||||
fread(ImageHeight, sizeof(unsigned short), 1,path);
|
||||
fseek(file, sizeof(unsigned short), SEEK_CUR);
|
||||
fread(&ImageHeight, sizeof(unsigned short), 1, file);
|
||||
return ImageHeight;
|
||||
|
||||
}
|
||||
|
||||
static *readImage(const char *path, unsigned short ImageWidth, unsigned short ImageHeight)
|
||||
static GrayScalePixelType *readImage(FILE *file, unsigned short ImageWidth, unsigned short ImageHeight)
|
||||
{
|
||||
fseek(path, sizeof(unsigned short), SEEK_CUR);
|
||||
fread(path, sizeof(char), ImageHeight*ImageWidth, path);
|
||||
GrayScalePixelType *image = malloc(ImageHeight*ImageWidth*sizeof(GrayScalePixelType));
|
||||
fseek(file, sizeof(unsigned short), SEEK_CUR);
|
||||
fread(image, sizeof(char), ImageHeight*ImageWidth, file);
|
||||
return image;
|
||||
|
||||
}
|
||||
|
||||
static GrayScalePixelType readLabel(FILE *file)
|
||||
{
|
||||
unsigned char label;
|
||||
fseek(file, sizeof(unsigned short), SEEK_CUR);
|
||||
fread(&label, sizeof(unsigned char), 1, file);
|
||||
return label;
|
||||
}
|
||||
|
||||
|
||||
// TODO Vervollständigen Sie die Funktion readImages unter Benutzung Ihrer Hilfsfunktionen
|
||||
GrayScaleImageSeries *readImages(const char *path)
|
||||
{
|
||||
GrayScaleImageSeries *series = NULL;
|
||||
FILE *file = fopen(path, "wb");
|
||||
|
||||
FILE *file = fopen(path, "rb");
|
||||
if (file == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
unsigned short numberOfImages = readNumberOfImages(file);
|
||||
unsigned short imageWidth = readImageWidth(file);
|
||||
unsigned short imageHeight = readImageHeight(file);
|
||||
|
||||
GrayScaleImageSeries *series = malloc(sizeof(GrayScaleImageSeries));
|
||||
if(series == NULL)
|
||||
{
|
||||
fclose(file);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
series->count = numberOfImages;
|
||||
series->images = malloc(numberOfImages * sizeof(GrayScaleImage));
|
||||
series->labels = malloc(numberOfImages * sizeof(unsigned char));
|
||||
|
||||
|
||||
for(int i = 0; i < numberOfImages; i++)
|
||||
{
|
||||
series->images[i].width = imageWidth;
|
||||
series->images[i].height = imageHeight;
|
||||
series->images[i].buffer = readImage(file, imageWidth, imageHeight);
|
||||
series->labels[i] = readLabel(file);
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
|
||||
return series;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
some_tag
|
||||
Reference in new issue
Block a user