corrected image read function, lable not reading correctly

This commit is contained in:
Jonas Hofmann 2025-11-26 13:09:31 +01:00
parent 6a5bc9796b
commit d59ffa6888
2 changed files with 15 additions and 9 deletions

View File

@ -32,15 +32,15 @@ GrayScaleImageSeries *readImages(const char *path)
if (readSource != NULL)
{
series = calloc(amountOfStatusInfoToRead, 3 * sizeof(unsigned int) + 3 * sizeof(headerString));
series->images = calloc(amountOfStatusInfoToRead, 2 * sizeof(unsigned int) + sizeof(headerString));
series = calloc(amountOfStatusInfoToRead, (3 * sizeof(unsigned int) + 3 * sizeof(headerString)));
series->images = calloc(amountOfStatusInfoToRead, (2 * sizeof(unsigned int) + sizeof(headerString)));
numberOfBytesToRead = readStatusInfo(readSource, series, headerString, sizeOfStausInfoElementsInBytes, amountOfStatusInfoToRead);
expectedHeader = checkHeaderString(headerString);
// printf("llu %llu\n", series->count * numberOfBytesToRead * sizeof(GrayScalePixelType));
series->images->buffer = calloc((series->count) * numberOfBytesToRead, sizeof(GrayScalePixelType));
series->images->buffer = calloc(((series->count) * numberOfBytesToRead), sizeof(GrayScalePixelType));
series->labels = calloc((series->count), sizeof(&(series->labels)));
if (expectedHeader)
@ -49,7 +49,7 @@ GrayScaleImageSeries *readImages(const char *path)
//heightbuffer = series->images->height;
// reallocate memory so that each image width can be saved seperately
series->images = realloc(series->images, series->count * (2 * sizeof(unsigned int) + sizeof(headerString)));
series->images = realloc(series->images, (series->count * (2 * sizeof(unsigned int) + sizeof(headerString))));
//series->images->width = widthbuffer;
//series->images->height = heightbuffer;
@ -140,12 +140,18 @@ unsigned int readStatusInfo(FILE *const source, GrayScaleImageSeries *const seri
// reads the imagebytes and the label of all images
void readImagedata(FILE *const source, GrayScaleImageSeries *const series, int const amountToRead)
{
int i = 0;
int i = 0;
for (i = 0; i < series->count ; i++)
{
fread(&(series->images->buffer), sizeof(*series->images->buffer), amountToRead, source);
fread(&(series->labels[i]), sizeof(*series->images->buffer), sizeof(*series->labels), source);
{
// printf("amount11 %d\n", amountToRead);
// gedanke: &(series->images[i].buffer)
// geht: &(series->images->buffer[0]) +i*36)
// geht nicht: &series->images[i].buffer
fread(&series->images[i].buffer[0], 1, amountToRead, source);
fread(&(series->labels[i]), 1, 1, source);
// printf("label: %d\n", series->labels[i]);
// fread(&(series->labels[i]), sizeof(*series->images->buffer), sizeof(*series->labels), source);
}
}

Binary file not shown.