parent
951dc4450f
commit
711e54fe43
@ -0,0 +1,76 @@ |
||||
/*
|
||||
* FLOATIMG |
||||
* calculer un histogramme et l'afficher |
||||
*/ |
||||
|
||||
#include <stdio.h> |
||||
#include <stdlib.h> |
||||
#include <string.h> |
||||
|
||||
#include "../floatimg.h" |
||||
|
||||
extern int verbosity; |
||||
|
||||
/* --------------------------------------------------------------------- */ |
||||
int fimg_calcul_histo(FloatImg *src, long *ghist, int sz) |
||||
{ |
||||
float maxval; |
||||
int x, y, idx; |
||||
float rgb[3], moy; |
||||
|
||||
fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, src, ghist, sz); |
||||
|
||||
maxval = fimg_get_maxvalue(src); |
||||
|
||||
fprintf(stderr, "maximum is %f\n", maxval); |
||||
|
||||
for (y=0; y<src->height; y++) { |
||||
for(x=0; x<src->width; x++) { |
||||
fimg_get_rgb(src, x, y, rgb); |
||||
moy = (rgb[0]+rgb[1]+rgb[2]) / 3.0; |
||||
|
||||
/* ok, here the had math part ... */ |
||||
idx = (int)( (moy*sz) / maxval); |
||||
|
||||
/* sanity check */ |
||||
if (idx<0 || idx>=sz) { |
||||
fprintf(stderr, "idx = %d, error\n", idx); |
||||
abort(); |
||||
} |
||||
|
||||
ghist[idx]++; |
||||
} |
||||
} |
||||
|
||||
return -66; |
||||
} |
||||
/* --------------------------------------------------------------------- */ |
||||
|
||||
#define NSLICES 999 |
||||
|
||||
int fimg_essai_histo(FloatImg *src, char *outpic, int k) |
||||
{ |
||||
long histo[NSLICES]; |
||||
int foo; |
||||
FILE *pipe; |
||||
|
||||
fprintf(stderr, ">>> %s ( %p '%s' %d )\n", __func__, src, outpic, k); |
||||
|
||||
memset(histo, 0, NSLICES*sizeof(long)); |
||||
|
||||
foo = fimg_calcul_histo(src, histo, NSLICES); |
||||
|
||||
for (foo=0; foo<NSLICES; foo++) { |
||||
printf("%7d %ld\n", foo, histo[foo]); |
||||
} |
||||
|
||||
pipe = popen("gnuplot", "w"); |
||||
fprintf(pipe, "set term png size 1000,400\n"); |
||||
fprintf(pipe, "set output \"histo.png\"\n"); |
||||
fprintf(pipe, "plot 'toto' with lines\n"); |
||||
fclose(pipe); |
||||
|
||||
|
||||
return -1; |
||||
} |
||||
/* --------------------------------------------------------------------- */ |
Loading…
Reference in new issue