Compare commits
2 Commits
9ae7e4d85f
...
116cb56e13
Author | SHA1 | Date | |
---|---|---|---|
116cb56e13 | |||
8a68cc24c6 |
4
.gitignore
vendored
4
.gitignore
vendored
@ -27,6 +27,10 @@ doc/*.ind
|
|||||||
|
|
||||||
funcs/t
|
funcs/t
|
||||||
|
|
||||||
|
scripts/*.fimg
|
||||||
|
scripts/*.pnm
|
||||||
|
scripts/*.gif
|
||||||
|
|
||||||
v4l2/t
|
v4l2/t
|
||||||
v4l2/capture
|
v4l2/capture
|
||||||
v4l2/grabvidseq
|
v4l2/grabvidseq
|
||||||
|
@ -314,6 +314,14 @@ dans l'upscaling.} effectuées.
|
|||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
|
L'autre façon de procéder est d'explorer notre image à la
|
||||||
|
recherche de la valeur maximale.
|
||||||
|
La fonction \texttt{float fimg\_get\_maxvalue(\&fimg)} est
|
||||||
|
faite pour ça. C'est la méthode utilisée par l'outil qui
|
||||||
|
sert à faire les modifications de contraste (page \pageref{fimgfx}.
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
La prochaine étape consistera à trouver une façon de faire
|
La prochaine étape consistera à trouver une façon de faire
|
||||||
une égalisation\index{égalisation} par histogramme\index{histogramme}
|
une égalisation\index{égalisation} par histogramme\index{histogramme}
|
||||||
qui respecte, dans toute sa futilité, le concept\index{concept}
|
qui respecte, dans toute sa futilité, le concept\index{concept}
|
||||||
@ -324,6 +332,7 @@ de pixel flottant.
|
|||||||
Une bonne partie de ces fonctions est indéterministe. Ce qui
|
Une bonne partie de ces fonctions est indéterministe. Ce qui
|
||||||
veut dire, en langage de tous les soirs, que ça risque de ne
|
veut dire, en langage de tous les soirs, que ça risque de ne
|
||||||
pas être la même chose dans l'avenir.
|
pas être la même chose dans l'avenir.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
On y trouve pêle-mêle de l'import/export de fichiers, de l'analyse
|
On y trouve pêle-mêle de l'import/export de fichiers, de l'analyse
|
||||||
@ -518,13 +527,11 @@ de ces images ?
|
|||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
ACCU="quux.fimg"
|
ACCU="quux.fimg"
|
||||||
TMPF="tmp.fimg"
|
TMPF="tmp.fimg"
|
||||||
DIMS="320 240"
|
DIMS="320 240"
|
||||||
|
|
||||||
mkfimg $ACCU $DIMS
|
mkfimg $ACCU $DIMS
|
||||||
|
|
||||||
for i in {0..1000}
|
for i in {0..1000}
|
||||||
do
|
do
|
||||||
mkfimg -t drand48 ${TMPF} ${DIMS}
|
mkfimg -t drand48 ${TMPF} ${DIMS}
|
||||||
@ -532,13 +539,15 @@ do
|
|||||||
fimgops $ACCU $TMPF add $ACCU
|
fimgops $ACCU $TMPF add $ACCU
|
||||||
fimg2pnm -v -g $ACCU $fname
|
fimg2pnm -v -g $ACCU $fname
|
||||||
done
|
done
|
||||||
|
|
||||||
convert -delay 10 xx*.pnm foo.gif
|
convert -delay 10 xx*.pnm foo.gif
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Voilà, si les choses se passent mal, vous allez découvrir
|
Voilà, si les choses se passent mal, vous allez découvrir
|
||||||
que votre drand n'est pas si drand que ça. Séquence angoisse.
|
que votre \texttt{drand48} n'est pas si drand que ça. Séquence angoisse.
|
||||||
|
|
||||||
|
\subsection{Scripts}\index{scripts}\label{scripts}
|
||||||
|
|
||||||
|
:wq
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{Video for Linux}\index{v4l2}
|
\section{Video for Linux}\index{v4l2}
|
||||||
|
@ -4,7 +4,7 @@ cp libfloatimg.a /usr/local/lib
|
|||||||
cp floatimg.h /usr/local/include
|
cp floatimg.h /usr/local/include
|
||||||
|
|
||||||
cp tools/mkfimg tools/fimg2pnm tools/fimgops \
|
cp tools/mkfimg tools/fimg2pnm tools/fimgops \
|
||||||
tools/png2fimg tools/fimgstats \
|
tools/png2fimg tools/fimgstats tools/fimgfx \
|
||||||
/usr/local/bin
|
/usr/local/bin
|
||||||
|
|
||||||
cp v4l2/grabvidseq v4l2/video-infos \
|
cp v4l2/grabvidseq v4l2/video-infos \
|
||||||
|
27
scripts/contrast-test.sh
Executable file
27
scripts/contrast-test.sh
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
GRAB="quux.fimg"
|
||||||
|
COS01="cos01.fimg"
|
||||||
|
SQRT="sqrt.fimg"
|
||||||
|
POW2="pow2.fimg"
|
||||||
|
|
||||||
|
f2p ()
|
||||||
|
{
|
||||||
|
echo ========== $1
|
||||||
|
fimg2pnm -v $1 $(basename $1 .fimg).pnm
|
||||||
|
}
|
||||||
|
|
||||||
|
grabvidseq -v -n 777 -p 0.07 -o $GRAB
|
||||||
|
f2p $GRAB
|
||||||
|
|
||||||
|
fimgfx -v pow2 $GRAB $POW2
|
||||||
|
f2p $POW2
|
||||||
|
|
||||||
|
fimgfx -v sqrt $GRAB $SQRT
|
||||||
|
f2p $SQRT
|
||||||
|
|
||||||
|
fimgfx -v cos01 $GRAB $COS01
|
||||||
|
f2p $COS01
|
||||||
|
|
||||||
|
convert -delay 10 *.pnm foo.gif
|
||||||
|
|
@ -66,7 +66,7 @@ FloatImg src, dest;
|
|||||||
int foo;
|
int foo;
|
||||||
double maxval;
|
double maxval;
|
||||||
|
|
||||||
#if 1
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, ">>> %s ( '%s' %d '%s' )\n", __func__,
|
fprintf(stderr, ">>> %s ( '%s' %d '%s' )\n", __func__,
|
||||||
sf, act, df);
|
sf, act, df);
|
||||||
#endif
|
#endif
|
||||||
@ -125,7 +125,7 @@ while ((opt = getopt(argc, argv, "hk:v")) != -1) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 1
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, "argc %d optind %d\n", argc, optind);
|
fprintf(stderr, "argc %d optind %d\n", argc, optind);
|
||||||
for (foo=0; foo<argc; foo++)
|
for (foo=0; foo<argc; foo++)
|
||||||
fprintf(stderr, "%3d %c %s\n", foo, foo==optind?'*':' ', argv[foo]);
|
fprintf(stderr, "%3d %c %s\n", foo, foo==optind?'*':' ', argv[foo]);
|
||||||
@ -144,9 +144,9 @@ if (action < 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (verbosity) {
|
if (verbosity) {
|
||||||
fprintf(stderr, "global fvalue %f\n", global_fvalue);
|
fprintf(stderr, " global fvalue %f\n", global_fvalue);
|
||||||
fprintf(stderr, "action %d\n", action);
|
fprintf(stderr, " action %d\n", action);
|
||||||
fprintf(stderr, "verbosity %d\n", verbosity);
|
fprintf(stderr, " verbosity %d\n", verbosity);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((nba=fx_list[action].nbarg)) {
|
if ((nba=fx_list[action].nbarg)) {
|
||||||
@ -155,13 +155,12 @@ if ((nba=fx_list[action].nbarg)) {
|
|||||||
|
|
||||||
srcname = argv[optind+1];
|
srcname = argv[optind+1];
|
||||||
dstname = argv[optind+2];
|
dstname = argv[optind+2];
|
||||||
fprintf(stderr, "%s ==> %s\n", srcname, dstname);
|
if (verbosity) fprintf(stderr, "%s ==> %s\n", srcname, dstname);
|
||||||
|
|
||||||
foo = do_an_effect(srcname, action, dstname);
|
foo = do_an_effect(srcname, action, dstname);
|
||||||
fprintf(stderr, "do an effect -> %d\n", foo);
|
if (foo) {
|
||||||
|
fprintf(stderr, "do an effect -> %d\n", foo);
|
||||||
|
}
|
||||||
fprintf(stderr, "\n%s [done]\n", argv[0]);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user