diff options
| author | Soikk | 2022-09-05 14:31:44 +0200 |
|---|---|---|
| committer | Soikk | 2022-09-05 14:31:44 +0200 |
| commit | 8f776e61b2650486873516f903cb199e321e10f5 (patch) | |
| tree | 8861c2b375abb45ea0752debd46d8e79e29d7152 /image/image.c | |
| download | soikk-neural-net-8f776e61b2650486873516f903cb199e321e10f5.tar.xz soikk-neural-net-8f776e61b2650486873516f903cb199e321e10f5.tar.zst | |
Initial commit
Diffstat (limited to 'image/image.c')
| -rw-r--r-- | image/image.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/image/image.c b/image/image.c new file mode 100644 index 0000000..99d1341 --- /dev/null +++ b/image/image.c @@ -0,0 +1,53 @@ +#include "image.h" + + +image *loadCSV(FILE *fp){ + image *im = malloc(sizeof(image)); + char line[MAXCHARS]; + fgets(line, MAXCHARS, fp); + im->label = atoi(strtok(line, ",")); + matrix *m = newMatrix(28, 28); + for(int i = 0; i < 28; ++i){ + for(int j = 0; j < 28; ++j){ + m->data[i][j] = strtod(strtok(NULL, ","), NULL)/256; + } + } + im->img = m; + return im; +} + +void freeImage(image **im){ + freeMatrix(&((*im)->img)); + free(*im); + *im = NULL; +} + +void printImage(image *im){ + printf("%d, %d\n", im->img->rows, im->img->cols); + printf("%d\n", im->label); + for(int i = 0; i < im->img->rows; ++i){ + for(int j = 0; j < im->img->cols; ++j){ + printf("%c ", (im->img->data[i][j] > 0) ? '1' : 0 ); + } + printf("\n"); + } +} +/*int main(){ + + FILE *fp = fopen("../mnist_train.csv", "r"); + char line[MAXCHARS]; + fgets(line, MAXCHARS, fp); + image *im = loadMnist_train(fp); + + printf("%d, %d\n", im->img->rows, im->img->cols); + printf("%d\n", im->label); + for(int i = 0; i < im->img->rows; ++i){ + if(i%28 == 0) + printf("\n"); + for(int j = 0; j < im->img->cols; ++j){ + printf("%c ", (im->img->data[i][j] > 0) ? '1' : 0 ); + } + } + + return 0; +}*/ |
