forked from tTh/FloatImg
more experiments
This commit is contained in:
parent
87c681ac70
commit
1d6f0e8b4e
@ -203,6 +203,9 @@ switch (idFx) {
|
|||||||
retval = octotree_classif(image, 0.500, 0);
|
retval = octotree_classif(image, 0.500, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CR_trinitron:
|
||||||
|
retval = trinitron(image, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
/* here are the glitches */
|
/* here are the glitches */
|
||||||
case CR_bsombra: /* experiment ! */
|
case CR_bsombra: /* experiment ! */
|
||||||
@ -228,6 +231,10 @@ switch (idFx) {
|
|||||||
retval = 0;
|
retval = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CR_nothing:
|
||||||
|
retval = do_something(image, 3);
|
||||||
|
break;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
fprintf(stderr, "%s : effect #%d invalid\n",
|
fprintf(stderr, "%s : effect #%d invalid\n",
|
||||||
__func__, idFx);
|
__func__, idFx);
|
||||||
|
@ -19,9 +19,11 @@
|
|||||||
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
|
||||||
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
|
||||||
27 shiftln0 1 1.0
|
27 shiftln0 1 1.0
|
||||||
|
42 nothing 42 3.14159
|
||||||
99 message 1 1.0
|
99 message 1 1.0
|
||||||
-1 end 1 1.0
|
-1 end 1 1.0
|
||||||
|
@ -125,8 +125,9 @@ for (idx=0; idx<f_stacks[numid].count; idx++) {
|
|||||||
|
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"crapulator give me error %d on effect %d\n",
|
"crapulator give me error %d on effect %d (%s)\n",
|
||||||
foo, eff);
|
foo, eff,
|
||||||
|
crap_name_from_number(eff));
|
||||||
return foo;
|
return foo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,28 @@
|
|||||||
|
|
||||||
extern int verbosity;
|
extern int verbosity;
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------- */
|
||||||
|
/* nouveau du 32 decembre 2020, endless september */
|
||||||
|
int do_something(FloatImg *pimg, int notused)
|
||||||
|
{
|
||||||
|
int ypos, idx, pos, sline;
|
||||||
|
|
||||||
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stderr, ">>> %s ( %p %d )\n", __func__, pimg, notused);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ypos = rand() % pimg->width;
|
||||||
|
|
||||||
|
for (idx=0; idx < pimg->height; idx++) {
|
||||||
|
sline = idx * pimg->width;
|
||||||
|
pos = sline + ypos;
|
||||||
|
// fprintf(stderr, "%6d %6d\n", idx, sline);
|
||||||
|
pimg->R[pos] = pimg->G[pos];
|
||||||
|
pimg->B[pos] = pimg->G[pos];
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
int kill_a_random_line(FloatImg *pvictime, float fval, int bits)
|
int kill_a_random_line(FloatImg *pvictime, float fval, int bits)
|
||||||
{
|
{
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
* glitches.h
|
* glitches.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
int do_something(FloatImg *pimg, int notused);
|
||||||
|
|
||||||
int kill_a_random_line(FloatImg *pvictime, float level, int bits);
|
int kill_a_random_line(FloatImg *pvictime, float level, int bits);
|
||||||
int kill_a_few_lines(FloatImg *who, float fval, int number);
|
int kill_a_few_lines(FloatImg *who, float fval, int number);
|
||||||
int random_blocks(FloatImg *picture, int percent);
|
int random_blocks(FloatImg *picture, int percent);
|
||||||
|
@ -9,6 +9,38 @@
|
|||||||
|
|
||||||
extern int verbosity;
|
extern int verbosity;
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------- */
|
||||||
|
int stat_zone(FloatImg *pimg, int geom[4], float v3[3])
|
||||||
|
{
|
||||||
|
int x, y, xe, ye;
|
||||||
|
int off;
|
||||||
|
double accus[3], divisor;
|
||||||
|
|
||||||
|
xe = geom[0] + geom[2];
|
||||||
|
ye = geom[1] + geom[3];
|
||||||
|
|
||||||
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stdout, "geom: %5d %5d %5d %5d\n",
|
||||||
|
geom[0], geom[1], geom[2], geom[3]);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
accus[0] = accus[1] = accus[2] = 0.0;
|
||||||
|
for (y=geom[1]; y<ye; y++) {
|
||||||
|
for (x=geom[0]; x<xe; x++) {
|
||||||
|
off = (y*pimg->width) + x;
|
||||||
|
accus[0] += (double) pimg->R[off];
|
||||||
|
accus[1] += (double) pimg->G[off];
|
||||||
|
accus[2] += (double) pimg->B[off];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
divisor = (double)(geom[2] * geom[3]); /* array of zone */
|
||||||
|
v3[0] = (float)(accus[0] / divisor);
|
||||||
|
v3[1] = (float)(accus[1] / divisor);
|
||||||
|
v3[2] = (float)(accus[2] / divisor);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
/*
|
/*
|
||||||
* premier essai...
|
* premier essai...
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
|
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
|
|
||||||
|
int stat_zone(FloatImg *pimg, int geom[4], float v3[3]);
|
||||||
|
|
||||||
|
|
||||||
/* first experiments */
|
/* first experiments */
|
||||||
|
|
||||||
int get_float_metric_a(FloatImg *pimg, float *where);
|
int get_float_metric_a(FloatImg *pimg, float *where);
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include "../floatimg.h"
|
#include "../floatimg.h"
|
||||||
|
|
||||||
#include "fonctions.h"
|
#include "fonctions.h"
|
||||||
|
#include "metriques.h"
|
||||||
#include "sfx.h"
|
#include "sfx.h"
|
||||||
|
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
@ -20,12 +21,50 @@
|
|||||||
extern int verbosity;
|
extern int verbosity;
|
||||||
|
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
/* nouveau du 27 decembre 2020, un soir de grand froid... */
|
/* nouveau du premier dimanche de 2020 'nextgen' */
|
||||||
|
static int pixel_trinitron(FloatImg *pimg, int pos[4], float *fvals)
|
||||||
|
{
|
||||||
|
int x, y, off;
|
||||||
|
|
||||||
|
for (y=pos[1]; y<pos[1]+pos[3]; y++) {
|
||||||
|
for (x=pos[0]; x<pos[0]+pos[2]; x++) {
|
||||||
|
off = (y*pimg->width) + x;
|
||||||
|
pimg->R[off] = fvals[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int trinitron(FloatImg *pimg, int notused)
|
||||||
|
{
|
||||||
|
int x, y, coo[4], foo;
|
||||||
|
float vals[3];
|
||||||
|
|
||||||
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stderr, ">>> %s ( %p %d )\n", __func__, pimg, notused);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STP 16 /* stepd for x & y axex */
|
||||||
|
coo[2] = coo[3] = STP;
|
||||||
|
|
||||||
|
for (y=0; y<pimg->height; y+=STP) {
|
||||||
|
coo[1] = y;
|
||||||
|
for (x=0; x<pimg->width; x+=STP) {
|
||||||
|
coo[0] = x;
|
||||||
|
foo = stat_zone(pimg, coo, vals);
|
||||||
|
if (foo) abort();
|
||||||
|
/* next step : plot the datas */
|
||||||
|
pixel_trinitron(pimg, coo, vals);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#undef STP
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------------------------- */
|
||||||
|
/* nouveau du 27 decembre 2020, un soir de grand froid... */
|
||||||
int octotree_classif(FloatImg *pimg, float kdist, int notused)
|
int octotree_classif(FloatImg *pimg, float kdist, int notused)
|
||||||
{
|
{
|
||||||
int foo;
|
int foo;
|
||||||
float mm[6], means[4], delta[3];
|
float mm[6], delta[3];
|
||||||
float r, g, b, kr, kg, kb, dp, trig;
|
float r, g, b, kr, kg, kb, dp, trig;
|
||||||
int idx, sz, n8, count;
|
int idx, sz, n8, count;
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -38,16 +77,6 @@ fprintf(stderr, ">>> %s ( %p %f %d )\n", __func__,
|
|||||||
pimg, kdist, notused);
|
pimg, kdist, notused);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
|
||||||
foo = fimg_meanvalues(pimg, means);
|
|
||||||
if (foo) {
|
|
||||||
fprintf(stderr, "oups %d in meanvalues\n", foo);
|
|
||||||
return foo;
|
|
||||||
}
|
|
||||||
fprintf(stderr, "means: %11f %11f %11f\n",
|
|
||||||
means[0], means[1], means[2]);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
foo = fimg_get_minmax_rgb(pimg, mm);
|
foo = fimg_get_minmax_rgb(pimg, mm);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "oups %d in get minmax\n", foo);
|
fprintf(stderr, "oups %d in get minmax\n", foo);
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
* ---------------------------------------------------
|
* ---------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
int trinitron(FloatImg *pimg, int notused);
|
||||||
|
|
||||||
int bouger_les_pixels(FloatImg *pimg, int kaboo);
|
int bouger_les_pixels(FloatImg *pimg, int kaboo);
|
||||||
int octotree_classif(FloatImg *pimg, float fk, int notused);
|
int octotree_classif(FloatImg *pimg, float fk, int notused);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user