Browse Source

plug the funny contrast adjustement in the grabber

master
tth 3 years ago
parent
commit
b80839b076
  1. 17
      doc/the_floatimg_hack.tex
  2. 3
      floatimg.h
  3. 1
      lib/contrast.c
  4. 7
      v4l2/grabvidseq.c

17
doc/the_floatimg_hack.tex

@ -371,7 +371,8 @@ return 0; @@ -371,7 +371,8 @@ return 0;
\end{verbatim}
Je vous laisse imaginer les dégats que peut faire cette
fontion en utilisation réelle.
fontion en utilisation réelle. Mieux, je vous propose
d'essayer par vous-même.
En particulier tout le reste du code qui suppose qu'un pixel
ne peut \textbf{pas} être négatif.
Vous pouvez aussi remarquer qu'il n'y a pas de controle
@ -439,7 +440,8 @@ en première approche, alors commençont par le plus simple, @@ -439,7 +440,8 @@ en première approche, alors commençont par le plus simple,
les valeurs moyennes de chaque composante.
Puis nous rajouterons\footnote{Les patchs sont les bienvenus}
le calcul de la variance\index{variance}.
le calcul de la variance\index{variance}. Les compétences
de \texttt{schmod777} sont attendues au dd2\index{dd2}.
\subsection{fimgfx}\index{fimgfx}\label{fimgfx}
@ -447,6 +449,17 @@ le calcul de la variance\index{variance}. @@ -447,6 +449,17 @@ le calcul de la variance\index{variance}.
Attention, je vais expérimenter un parsing un peu étrange
sur les arguments de la ligne de commande. coredump expected.}
\vspace{1em}
À l'heure actuelle\footnote{décembre 2019, vers 15:30}, nous avons
déja quelques ajustements basiques de contraste.
\begin{verbatim}
tth@daubian:~/Devel/FloatImg/tools$ ./fimgfx -v -h
--- fimg special effects ---
cos01 cos010 pow2 sqrt
\end{verbatim}
\subsection{fimgops}\index{fimgops}\label{fimgops}
Quelques opérations diverses entre deux images, qui doivent être

3
floatimg.h

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
* floatimg.h
*/
#define FIMG_VERSION 79
#define FIMG_VERSION 80
/*
* in memory descriptor
@ -41,6 +41,7 @@ typedef struct { @@ -41,6 +41,7 @@ typedef struct {
#define CONTRAST_SQRT 1
#define CONTRAST_POW2 2
#define CONTRAST_COS01 3
#define CONTRAST_COS010 4
/*
* core module

1
lib/contrast.c

@ -20,6 +20,7 @@ if (!strcmp(str, "none")) return CONTRAST_NONE; @@ -20,6 +20,7 @@ if (!strcmp(str, "none")) return CONTRAST_NONE;
if (!strcmp(str, "sqrt")) return CONTRAST_SQRT;
if (!strcmp(str, "pow2")) return CONTRAST_POW2;
if (!strcmp(str, "cos01")) return CONTRAST_COS01;
if (!strcmp(str, "cos010")) return CONTRAST_COS010;
return -1;
}

7
v4l2/grabvidseq.c

@ -122,6 +122,10 @@ FloatImg cumul; @@ -122,6 +122,10 @@ FloatImg cumul;
while ((opt = getopt(argc, argv, "c:d:ghn:o:O:p:s:uv")) != -1) {
switch(opt) {
case 'c': contrast = fimg_id_contraste(optarg);
if (contrast < 0) {
fputs("unknow contrast\n", stderr);
exit(1);
}
break;
case 'd': dev_name = optarg; break;
case 'g': to_gray = 1; break;
@ -344,6 +348,9 @@ switch (contrast) { @@ -344,6 +348,9 @@ switch (contrast) {
case CONTRAST_COS01:
fimg_cos_01(&cumul, NULL, maxvalue);
break;
case CONTRAST_COS010:
fimg_cos_010(&cumul, NULL, maxvalue);
break;
default:
fprintf(stderr, "bad contrast method\n");
break;

Loading…
Cancel
Save