Compare commits
9 Commits
ade40f2029
...
73b8048dea
Author | SHA1 | Date | |
---|---|---|---|
|
73b8048dea | ||
|
198bd874f1 | ||
|
a27a165404 | ||
|
c30e073abd | ||
|
f67cd9be3e | ||
|
69cb36b84c | ||
|
a60d2afa4d | ||
|
936ea6ceab | ||
|
c0f3b86d0c |
@ -157,7 +157,7 @@ return retval;
|
|||||||
* processor.
|
* processor.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DEBUG_THIS_CRAP 0
|
#define DEBUG_THIS_CRAP 100
|
||||||
|
|
||||||
int crapulator(FloatImg *image, int idFx, float fval)
|
int crapulator(FloatImg *image, int idFx, float fval)
|
||||||
{
|
{
|
||||||
@ -262,6 +262,13 @@ switch (idFx) {
|
|||||||
retval = trinitron(image, 0);
|
retval = trinitron(image, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CR_sqrt:
|
||||||
|
retval = fimg_square_root(image, image, 1000.0);
|
||||||
|
break;
|
||||||
|
case CR_pow2:
|
||||||
|
retval = fimg_power_2(image, image, 1000.0);
|
||||||
|
break;
|
||||||
|
|
||||||
/* here are the glitches */
|
/* here are the glitches */
|
||||||
case CR_bsombra: /* experiment ! */
|
case CR_bsombra: /* experiment ! */
|
||||||
retval = des_bords_sombres_a(image, 160);
|
retval = des_bords_sombres_a(image, 160);
|
||||||
@ -291,6 +298,8 @@ switch (idFx) {
|
|||||||
case CR_message:
|
case CR_message:
|
||||||
fprintf(stderr, "### msg from pid %d, fval=%f ###\n",
|
fprintf(stderr, "### msg from pid %d, fval=%f ###\n",
|
||||||
getpid(), fval);
|
getpid(), fval);
|
||||||
|
/* here, we can display stats ! */
|
||||||
|
fimg_describe(image, "in crapulator");
|
||||||
retval = 0;
|
retval = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -19,7 +19,9 @@
|
|||||||
18 updown 1 1.0
|
18 updown 1 1.0
|
||||||
19 hipass 1 1.0
|
19 hipass 1 1.0
|
||||||
20 octotree 1 1.0
|
20 octotree 1 1.0
|
||||||
21 trinitron 3, 0.0
|
21 trinitron 3 0.0
|
||||||
|
22 sqrt 1 0.0
|
||||||
|
23 pow2 1 0.0
|
||||||
24 bsombra 1 1.0
|
24 bsombra 1 1.0
|
||||||
25 vsglitch 1 1.0
|
25 vsglitch 1 1.0
|
||||||
26 rndblks 1 1.0
|
26 rndblks 1 1.0
|
||||||
|
@ -51,6 +51,11 @@ fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__,
|
|||||||
pfifo, destination, step);
|
pfifo, destination, step);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (step<1){
|
||||||
|
fprintf(stderr, "***** %s invalid step %d\n", __func__, step);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
if (NULL==destination) {
|
if (NULL==destination) {
|
||||||
pdest = &(pfifo->total); }
|
pdest = &(pfifo->total); }
|
||||||
else {
|
else {
|
||||||
@ -68,11 +73,11 @@ for (idx=0; idx<pfifo->nbslots; idx += step) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* XXX
|
#if 0
|
||||||
fprintf(stderr, "*** %s:%s writing debugB file ***\n",
|
fprintf(stderr, "*** %s:%s writing debugB file ***\n",
|
||||||
__FILE__, __func__);
|
__FILE__, __func__);
|
||||||
fimg_dump_to_file(&g_fifo.total, "debugB.fimg", 0);
|
fimg_dump_to_file(&g_fifo.total, "debugB.fimg", 0);
|
||||||
XXX */
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -96,6 +101,10 @@ if (foo) {
|
|||||||
return foo;
|
return foo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
fimg_dump_to_file(&g_fifo.total, "outputXXX.fimg", 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
foo = fimg_export_picture(&g_fifo.total, fname, 0);
|
foo = fimg_export_picture(&g_fifo.total, fname, 0);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "ERR EXPORT '%s' is %d\n", fname, foo);
|
fprintf(stderr, "ERR EXPORT '%s' is %d\n", fname, foo);
|
||||||
|
@ -118,7 +118,7 @@ for (idx=0; idx<f_stacks[numid].count; idx++) {
|
|||||||
fv = f_stacks[numid].slots[idx].fval;
|
fv = f_stacks[numid].slots[idx].fval;
|
||||||
|
|
||||||
if (verbosity > 1)
|
if (verbosity > 1)
|
||||||
fprintf(stderr, "stack %d pass %d : effect %2d on %p\n",
|
fprintf(stderr, "stack %d idx %d : effect %2d on %p\n",
|
||||||
numid, idx, eff, target);
|
numid, idx, eff, target);
|
||||||
|
|
||||||
foo = crapulator(target, eff, fv);
|
foo = crapulator(target, eff, fv);
|
||||||
|
@ -145,6 +145,9 @@ for (idx=0; idx<globbuf.gl_pathc; idx++) {
|
|||||||
fprintf(stderr, "%s: input filter -> %d\n", __func__, foo);
|
fprintf(stderr, "%s: input filter -> %d\n", __func__, foo);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
|
if (idx==42) fimg_dump_to_file(&input, "inputXXX.fimg", 0);
|
||||||
|
#endif
|
||||||
foo = traite_une_image(&input, outdir);
|
foo = traite_une_image(&input, outdir);
|
||||||
|
|
||||||
if (foo) {
|
if (foo) {
|
||||||
|
@ -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",
|
||||||
|
@ -61,7 +61,7 @@ int single_push_picture(FloatImg *pimg)
|
|||||||
{
|
{
|
||||||
int foo;
|
int foo;
|
||||||
char line[1000], buff[100];
|
char line[1000], buff[100];
|
||||||
char *extension = ".png";
|
char *extension = "png";
|
||||||
|
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, ">>> %s ( %p )\n", __func__, pimg);
|
fprintf(stderr, ">>> %s ( %p )\n", __func__, pimg);
|
||||||
|
@ -7,6 +7,7 @@ cp tools/mkfimg tools/fimg2pnm tools/fimgops \
|
|||||||
tools/fimg2png tools/fimg2tiff tools/fimg2fits \
|
tools/fimg2png tools/fimg2tiff tools/fimg2fits \
|
||||||
tools/png2fimg tools/fimgstats tools/fimgfx \
|
tools/png2fimg tools/fimgstats tools/fimgfx \
|
||||||
tools/cumulfimgs tools/fimg2text \
|
tools/cumulfimgs tools/fimg2text \
|
||||||
|
tools/fimghalfsize \
|
||||||
/usr/local/bin
|
/usr/local/bin
|
||||||
|
|
||||||
cp v4l2/grabvidseq v4l2/video-infos \
|
cp v4l2/grabvidseq v4l2/video-infos \
|
||||||
|
@ -60,7 +60,7 @@ for (idx=0; idx<nbre; idx++) {
|
|||||||
d->B[idx] = maxval * sqrt(dval);
|
d->B[idx] = maxval * sqrt(dval);
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return 0;
|
||||||
}
|
}
|
||||||
/* ---------------------------------------------------------------- */
|
/* ---------------------------------------------------------------- */
|
||||||
int fimg_power_2(FloatImg *s, FloatImg *d, double maxval)
|
int fimg_power_2(FloatImg *s, FloatImg *d, double maxval)
|
||||||
|
Loading…
Reference in New Issue
Block a user