/* * metriques.c */ #include #include #include "../floatimg.h" #include "metriques.h" extern int verbosity; /* -------------------------------------------------------------- */ /* * premier essai... */ int get_float_metric_a(FloatImg *pimg, float *where) { float means[4]; int foo; #if DEBUG_LEVEL fprintf(stderr, ">>> %s ( %p %f %d )\n", __func__, pimg, where, whot); #endif foo = fimg_meanvalues(pimg, means); if (foo) { fprintf(stderr, "fatal error in %s\n", __func__); exit(1); } *where = means[0] + means[1] + means[2]; return 0; } /* -------------------------------------------------------------- */ int get_float_metric_b(FloatImg *pimg, float *where) { int idx, size; double adder; adder = 0.0; size = pimg->width * pimg->height; for (idx=20; idx < size; idx+=42) { adder += (double)pimg->R[idx]; } *where = (float)adder; return 0; } /* -------------------------------------------------------------- */ int get_float_metric_from_file(char *fname, float *where, int mode) { FloatImg image; int foo; float fval; foo = fimg_create_from_dump(fname, &image); if (foo) { fprintf(stderr, "%s: err %d loading %s\n", __func__, foo, fname); return foo; } fval = -1.0; /* sensible default value */ foo = get_float_metric_b(&image, &fval); *where = fval; fimg_destroy(&image); return 0; } /* -------------------------------------------------------------- */