need more work
This commit is contained in:
parent
a27a165404
commit
198bd874f1
@ -10,6 +10,7 @@
|
|||||||
extern int verbosity;
|
extern int verbosity;
|
||||||
|
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
|
/* usage --> sfx.c:trinitron */
|
||||||
int stat_zone(FloatImg *pimg, int geom[4], float v3[3])
|
int stat_zone(FloatImg *pimg, int geom[4], float v3[3])
|
||||||
{
|
{
|
||||||
int x, y, xe, ye;
|
int x, y, xe, ye;
|
||||||
@ -43,9 +44,12 @@ return 0;
|
|||||||
}
|
}
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
/*
|
/*
|
||||||
* premier essai...
|
* premier essai : moyenne de toutes les composantes
|
||||||
|
* de tous les pixels.
|
||||||
|
*
|
||||||
|
* Question: pourquoi pas le retour en double precision ?
|
||||||
*/
|
*/
|
||||||
int get_float_metric_a(FloatImg *pimg, float *where)
|
int get_float_metric_avg(FloatImg *pimg, float *where)
|
||||||
{
|
{
|
||||||
float means[4]; /* four values : R G B A */
|
float means[4]; /* four values : R G B A */
|
||||||
int foo;
|
int foo;
|
||||||
@ -63,7 +67,8 @@ if (foo) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
int get_float_metric_b(FloatImg *pimg, float *where)
|
/* echantillonage des pixels rouges */
|
||||||
|
int get_float_metric_iRed(FloatImg *pimg, float *where)
|
||||||
{
|
{
|
||||||
int idx, size, nbre;
|
int idx, size, nbre;
|
||||||
double adder;
|
double adder;
|
||||||
@ -79,6 +84,28 @@ for (idx=20; idx < size; idx+=42) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
|
int get_float_metric_LR(FloatImg *pimg, float *where)
|
||||||
|
{
|
||||||
|
int coords[4], foo;
|
||||||
|
float valL[3], valR[3];
|
||||||
|
|
||||||
|
coords[0] = 0; // X
|
||||||
|
coords[1] = 0; // Y
|
||||||
|
coords[2] = pimg->width / 2; // W
|
||||||
|
coords[3] = pimg->height; // H
|
||||||
|
|
||||||
|
foo = stat_zone(pimg, coords, valL);
|
||||||
|
coords[1] = pimg->width / 2;
|
||||||
|
foo = stat_zone(pimg, coords, valR);
|
||||||
|
|
||||||
|
*where = valL[1] - valR[1];
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------------------------- */
|
||||||
|
/*
|
||||||
|
* et voici le grand dispactheur
|
||||||
|
*/
|
||||||
int get_float_metric_from_file(char *fname, float *where, int mode)
|
int get_float_metric_from_file(char *fname, float *where, int mode)
|
||||||
{
|
{
|
||||||
FloatImg image;
|
FloatImg image;
|
||||||
@ -97,10 +124,13 @@ if (foo) {
|
|||||||
fval = -1.0; /* sensible default value */
|
fval = -1.0; /* sensible default value */
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 0: case 1:
|
case 0: case 1:
|
||||||
foo = get_float_metric_a(&image, &fval);
|
foo = get_float_metric_avg(&image, &fval);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
foo = get_float_metric_b(&image, &fval);
|
foo = get_float_metric_iRed(&image, &fval);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
foo = get_float_metric_LR(&image, &fval);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "%s: method %d invalid\n",
|
fprintf(stderr, "%s: method %d invalid\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user