summaryrefslogtreecommitdiff
path: root/image/image.c
diff options
context:
space:
mode:
Diffstat (limited to 'image/image.c')
-rw-r--r--image/image.c53
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;
+}*/