diff --git a/floatimg.h b/floatimg.h index e7fbf176..3e0a693a 100644 --- a/floatimg.h +++ b/floatimg.h @@ -3,7 +3,7 @@ * ugly code from tTh */ -#define FIMG_VERSION 105 +#define FIMG_VERSION 106 /* * in memory descriptor @@ -126,7 +126,7 @@ int fimg_shift_to_zero(FloatImg *s, FloatImg *d, float coefs[6]); /* module funcs/geometry.c */ -int fimg_equalize_compute(FloatImg *src, void *vptr); +int fimg_equalize_compute(FloatImg *src, void *vptr, float vmax); int fimg_mk_gray_from(FloatImg *src, FloatImg*dst, int k); int fimg_desaturate(FloatImg *src, FloatImg *dst, int k); diff --git a/funcs/equalize.c b/funcs/equalize.c index ca6cccc2..b0b15995 100644 --- a/funcs/equalize.c +++ b/funcs/equalize.c @@ -1,6 +1,6 @@ /* * FLOATIMG - * egalisation dinamique approximative + * egalisation dynamique approximative * #coronamaison Thu 09 Apr 2020 03:37:10 PM CEST */ @@ -12,25 +12,39 @@ extern int verbosity; /* --------------------------------------------------------------------- */ -int fimg_equalize_compute(FloatImg *src, void *vptr) +int fimg_equalize_compute(FloatImg *src, void *vptr, float vmax) { float minmax[6]; int foo; +float dr, dg, db; #if DEBUG_LEVEL fprintf(stderr, ">>> %s ( %p )\n", __func__, src); #endif +memset(minmax, 0, 6*sizeof(float)); + foo = fimg_get_minmax_rgb(src, minmax); -printf("Rmin %12.4g Rmax %12.4g\n", minmax[0], minmax[1]); -printf("Gmin %12.4g Gmax %12.4g\n", minmax[2], minmax[3]); -printf("Bmin %12.4g Bmax %12.4g\n", minmax[4], minmax[5]); +if (foo) { + fprintf(stderr, "err %d get minmax in %s\n", foo, __func__); + return foo; + } + +dr = minmax[1] - minmax[0]; +dg = minmax[3] - minmax[2]; +db = minmax[5] - minmax[4]; + +printf("Rmin %12.4g Rmax %12.4g delta %12.4g\n", minmax[0], minmax[1], dr); +printf("Gmin %12.4g Gmax %12.4g delta %12.4g\n", minmax[2], minmax[3], dg); +printf("Bmin %12.4g Bmax %12.4g delta %12.4g\n", minmax[4], minmax[5], db); if ( (minmax[0]<0.0) || (minmax[2]<0.0) || (minmax[4]<0.0) ) { fprintf(stderr, "%s: negative value ?\n", __func__); return -4; } +// printf("deltas %12.4g %12.4g %12.4g\n", dr, dg, db); + return 0; } /* --------------------------------------------------------------------- */ diff --git a/funcs/t.c b/funcs/t.c index f1b1a96a..20cd8c6e 100644 --- a/funcs/t.c +++ b/funcs/t.c @@ -55,7 +55,7 @@ else { abort(); } -foo = fimg_equalize_compute(&src, NULL); +foo = fimg_equalize_compute(&src, NULL, 666.666); fprintf(stderr, "equalize compute --> %d\n", foo); fimg_destroy(&src);