Compare commits

..

No commits in common. "3778e75399a10509c4b29900d5bb11b82a0ac7b1" and "785b521d4fd74c21389afc447007e96f40dda96e" have entirely different histories.

9개의 변경된 파일31개의 추가작업 그리고 67개의 파일을 삭제

파일 보기

@ -97,6 +97,7 @@ FimgFilter3x3 hipass = {
1.0, 0.0 1.0, 0.0
}; };
switch (typef) { switch (typef) {
case 0: pfiltre = &lowpass; break; case 0: pfiltre = &lowpass; break;
case 1: pfiltre = &hipass; break; case 1: pfiltre = &hipass; break;
@ -247,13 +248,11 @@ switch (idFx) {
break; break;
case CR_qsortrgb: case CR_qsortrgb:
// fprintf(stderr, "!!! %d !!!\n", idFx);
// retval = fimg_qsort_rgb_b(image, image, 0);
retval = trier_les_pixels(image); retval = trier_les_pixels(image);
break; break;
case CR_multidots:
retval = plot_multidots(image, 42);
break;
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);

파일 보기

@ -25,7 +25,6 @@
26 rndblks 1 1.0 26 rndblks 1 1.0
27 shiftln0 1 1.0 27 shiftln0 1 1.0
28 qsortrgb 2 1.0 28 qsortrgb 2 1.0
30 multidots 100 1.333 42 nothing 42 3.14159
42 nothing 42 3.1415926
99 message 1 1.0 99 message 1 1.0
-1 end 1 1.0 -1 end 1 1.0

파일 보기

@ -31,8 +31,8 @@ convert -delay 200 /tmp/fstack*.png foo.gif
essai_singlepass () essai_singlepass ()
{ {
MP4="/home/tth/Essais/FondageDePlomb/foo.mp4" MP4="/home/tth/Essais/FondageDePlomb/foo.mp4"
INPUT="/home/tth/Essais/FondageDePlomb/capture/02[0123]??.fimg" INPUT="/home/tth/Essais/FondageDePlomb/capture/00???.fimg"
FILTRE="multidots:liss3x3:liss3x3" FILTRE="trinitron"
OUTDIR="/tmp/x8/" OUTDIR="/tmp/x8/"
echo '********* essai single *********' echo '********* essai single *********'

파일 보기

@ -120,24 +120,6 @@ for (y=0; y<8; y++) {
return 0; return 0;
} }
/* -------------------------------------------------------------- */ /* -------------------------------------------------------------- */
int plot_multidots(FloatImg *picture, int notused)
{
int pass, szimg, osrc, odst;
szimg = picture->width * picture->height;
for (pass=0; pass<szimg/32; pass++) {
osrc = rand() % szimg;
odst = rand() % szimg;
picture->R[odst] = (picture->R[osrc] + picture->R[odst]) / 2.0;
picture->G[odst] = (picture->G[osrc] + picture->G[odst]) / 2.0;
picture->B[odst] = (picture->B[osrc] + picture->B[odst]) / 2.0;
}
return 0;
}
int random_blocks(FloatImg *picture, int percent) int random_blocks(FloatImg *picture, int percent)
{ {
int x, y; int x, y;
@ -230,26 +212,16 @@ for (y=BB; y<h-BB; y++) {
return 0; return 0;
} }
/* -------------------------------------------------------------- */ /* -------------------------------------------------------------- */
static void shifter(float *fs, float *fd, int stp, int largeur) static void shifter(float *fs, float *fd, int w, int nbr)
{ {
int xpos; int krkr;
/* move the pixels */ for (krkr=0; krkr<nbr; krkr++) {
for (xpos=0; xpos<largeur; xpos++) { fd[krkr] = fs[(krkr+w)%nbr];
fd[xpos] = fs[(xpos+stp)%largeur];
} }
/* take your sixpack, film at 11 */ /* take your sixpack, film at 11 */
} }
static void smooth_line(float *fs, float *fd, int sz)
{
int xpos;
for (xpos=1; xpos<(sz-1); xpos++) {
fd[xpos] = (fs[xpos-1]+fs[xpos]+fs[xpos+1]) / 3.0;
}
fd[0] = fd[sz-1] = 0.0;
}
int multilines_shift_0(FloatImg *picz, int step, int nombre) int multilines_shift_0(FloatImg *picz, int step, int nombre)
{ {
float *buffline, *sptr; float *buffline, *sptr;
@ -270,18 +242,15 @@ for (idx=0; idx<nombre; idx++) {
sptr = picz->R + (ypos * picz->width); sptr = picz->R + (ypos * picz->width);
shifter(sptr, buffline, step, picz->width); shifter(sptr, buffline, step, picz->width);
smooth_line(buffline, sptr, picz->width); memcpy(sptr, buffline, picz->width*sizeof(float));
// XXX memcpy (sptr, buffline, picz->width*sizeof(float));
sptr = picz->G + (ypos * picz->width); sptr = picz->G + (ypos * picz->width);
shifter(sptr, buffline, step, picz->width); shifter(sptr, buffline, step, picz->width);
smooth_line(buffline, sptr, picz->width); memcpy(sptr, buffline, picz->width*sizeof(float));
// XXX memcpy (sptr, buffline, picz->width*sizeof(float));
sptr = picz->B + (ypos * picz->width); sptr = picz->B + (ypos * picz->width);
shifter(sptr, buffline, step, picz->width); shifter(sptr, buffline, step, picz->width);
smooth_line(buffline, sptr, picz->width); memcpy(sptr, buffline, picz->width*sizeof(float));
// XXX memcpy (sptr, buffline, picz->width*sizeof(float));
} }
return 0; return 0;

파일 보기

@ -3,7 +3,6 @@
*/ */
int do_something(FloatImg *pimg, int notused); int do_something(FloatImg *pimg, int notused);
int plot_multidots(FloatImg *picture, 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);

파일 보기

@ -89,7 +89,7 @@ for (idx=0; idx<nombre; idx++) {
if (method) { if (method) {
/* and now, we can massage all our datas */ /* and now, we can massage all our datas */
fprintf(stderr, "sorting method = %d ...\n", method); // fprintf(stderr, "sorting %d ...\n", method);
qsort(idxvalues, nombre, sizeof(IdxValue), cmp_idxvalues); qsort(idxvalues, nombre, sizeof(IdxValue), cmp_idxvalues);
} }
@ -128,7 +128,7 @@ IdxValue *idx_values; /* gni? */
fprintf(stderr, " interpolate from '%s' to '%s' with %d steps.\n", fprintf(stderr, " interpolate from '%s' to '%s' with %d steps.\n",
pattern, outdir, Nsteps); pattern, outdir, Nsteps);
if (negative) fprintf(stderr, "%s: negative ON\n", __func__); if (negative) fprintf(stderr, "%s: negative on\n", __func__);
memset(&globbuf, 0, sizeof(glob_t)); memset(&globbuf, 0, sizeof(glob_t));
foo = glob(pattern, 0, NULL, &globbuf); foo = glob(pattern, 0, NULL, &globbuf);

파일 보기

@ -153,7 +153,7 @@ puts("\t-F\tdefine:the:filter:chain");
puts("\t-g\tinput glob pattern"); puts("\t-g\tinput glob pattern");
puts("\t-i\tinfile.fimg"); puts("\t-i\tinfile.fimg");
puts("\t-L\tlist available filters"); puts("\t-L\tlist available filters");
puts("\t-o\toutfile.xxx"); puts("\t-o\tinfile.xxx");
puts("\t-O\t/output/directory"); puts("\t-O\t/output/directory");
puts("\t-s\tdo single test"); puts("\t-s\tdo single test");

파일 보기

@ -30,14 +30,10 @@ Bien entendu, avant tout, il faut installer quelques outils et
dépendances. Je vais tenter de les lister dans le plus grand dépendances. Je vais tenter de les lister dans le plus grand
désordre (à la sauce Debian) : désordre (à la sauce Debian) :
``` - libtiff-dev
apt install libtiff-dev - libpnglite-dev
apt install libpnglite-dev - liblo-dev
apt install liblo-dev - libv4l2-dev
apt install libv4l2-dev
apt install libcfitsio-dev
apt install libnetpbm-dev
```
Certains outils externes sont aussi utiles : Certains outils externes sont aussi utiles :

파일 보기

@ -106,8 +106,7 @@ char *dev_name = "/dev/video0";
struct buffer *buffers; struct buffer *buffers;
int foo; int foo;
double period = 10.0; /* delai entre les captures double period = 10.0; /* delai entre les captures */
en secondes */
int nbre_capt = 1; /* nombre de captures */ int nbre_capt = 1; /* nombre de captures */
int opt; int opt;
int width = 640; int width = 640;
@ -145,6 +144,7 @@ while ((opt = getopt(argc, argv, "c:d:ghn:o:O:p:r:s:uv")) != -1) {
optarg); optarg);
exit(1); exit(1);
} }
period *= 1e6;
break; break;
case 'r': rotfactor = atoi(optarg); break; case 'r': rotfactor = atoi(optarg); break;
case 's': parse_WxH(optarg, &width, &height); case 's': parse_WxH(optarg, &width, &height);
@ -162,7 +162,7 @@ if (verbosity > 1) {
fprintf(stderr, "*** GrabVidSeq (%s, %s) libv %d, pid=%d\n", fprintf(stderr, "*** GrabVidSeq (%s, %s) libv %d, pid=%d\n",
__DATE__, __TIME__, FIMG_VERSION, getpid()); __DATE__, __TIME__, FIMG_VERSION, getpid());
fprintf(stderr, "grabing %d picz, ", nbre_capt); fprintf(stderr, "grabing %d picz, ", nbre_capt);
fprintf(stderr, "period is %.3f seconds\n", period); fprintf(stderr, "period is %.3f milliseconds\n", period/1e3);
fprintf(stderr, "framesize is %dx%d\n", width, height); fprintf(stderr, "framesize is %dx%d\n", width, height);
// fprintf(stderr, "destdir is '%s'\n", dest_dir); // fprintf(stderr, "destdir is '%s'\n", dest_dir);
if (upscaling) fprintf(stderr, "upscaling is on\n"); if (upscaling) fprintf(stderr, "upscaling is on\n");
@ -277,7 +277,7 @@ for (i = 0; i < nbre_capt; i++) {
} }
if(verbosity > 1) { if(verbosity > 1) {
fprintf(stderr, "%6d / %6d %9.3f\r", i, nbre_capt, fprintf(stderr, "%6d / %6d %9.3f\n", i, nbre_capt,
fimg_timer_get(0)); fimg_timer_get(0));
fflush(stderr); fflush(stderr);
} }
@ -309,15 +309,15 @@ for (i = 0; i < nbre_capt; i++) {
out_name); out_name);
#endif #endif
if (nbre_capt > 1 && period > 0.001) { if (nbre_capt > 1 && period > 1.0) {
/* suspend execution for usleep(period);
microsecond intervals */
usleep((int)(period*1E6));
} }
xioctl(fd, VIDIOC_QBUF, &buf); xioctl(fd, VIDIOC_QBUF, &buf);
} }
fflush(stdout);
if (verbosity) { if (verbosity) {
t_final = fimg_timer_get(0); t_final = fimg_timer_get(0);
fprintf(stderr, "pid %d : elapsed %.3g s -> %.2f fps\n", getpid(), fprintf(stderr, "pid %d : elapsed %.3g s -> %.2f fps\n", getpid(),
@ -398,6 +398,8 @@ switch (foo) {
} }
// free buffers // free buffers
fimg_destroy(&cumul); fimg_destroy(&cumul);
#endif #endif