Compare commits
No commits in common. "bf5058b8d772823cdf363f9347d6d297e2c223df" and "bbea24d65db8d1da034fb42c6f75953f6c0ac19f" have entirely different histories.
bf5058b8d7
...
bbea24d65d
4
Makefile
4
Makefile
@ -11,12 +11,12 @@ all: essai
|
|||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
|
|
||||||
essai: essai.c libfloatimg.a floatimg.h Makefile
|
essai: essai.c libfloatimg.a floatimg.h Makefile
|
||||||
gcc $(COPT) $< $(LDOPT) -lpnglite -lz -o $@
|
gcc $(COPT) $< $(LDOPT) -lpnglite -o $@
|
||||||
|
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
|
|
||||||
TOTAR = *.[ch] Makefile *.sh *.txt \
|
TOTAR = *.[ch] Makefile *.sh *.txt \
|
||||||
doc/*.tex doc/mkdoc.sh doc/*.txt \
|
doc/*.tex doc/mkdoc.sh \
|
||||||
funcs/*.[ch] funcs/Makefile \
|
funcs/*.[ch] funcs/Makefile \
|
||||||
tools/*.[ch] tools/Makefile \
|
tools/*.[ch] tools/Makefile \
|
||||||
v4l2/*.[ch] v4l2/Makefile \
|
v4l2/*.[ch] v4l2/Makefile \
|
||||||
|
@ -150,7 +150,7 @@ lesquels sont décrits en page \pageref{outils}.
|
|||||||
|
|
||||||
Vous devez, en dehors des outils classiques (bash, gcc, make\dots),
|
Vous devez, en dehors des outils classiques (bash, gcc, make\dots),
|
||||||
avoir quelques bibliothèques installées\footnote{Les \texttt{-dev}
|
avoir quelques bibliothèques installées\footnote{Les \texttt{-dev}
|
||||||
pour Debian et dérivées}~: libv4l2, libpnglite, libtiff, libnetpbm,
|
pour Debain et dérivées}~: libv4l2, libpnglite, libtiff, libnetpbm,
|
||||||
et probablement d'autres choses.
|
et probablement d'autres choses.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
@ -165,9 +165,9 @@ et de l'écriture de Makefile's sera un plus.
|
|||||||
Un script \texttt{build.sh} permet de construire approximativement
|
Un script \texttt{build.sh} permet de construire approximativement
|
||||||
le bouzin. Il est loin d'être parfait\footnote{Il doit être possible
|
le bouzin. Il est loin d'être parfait\footnote{Il doit être possible
|
||||||
de faire un Makefile récursif, mais\dots}.
|
de faire un Makefile récursif, mais\dots}.
|
||||||
Dans chacun des répertoires à traiter, ce script devrait trouver
|
Dans chacun des
|
||||||
un Makefile et un fichier \texttt{t.c} qui est le source de la cible
|
répertoires à traiter, ce script devrait trouver un Makefile et un fichier
|
||||||
par défaut du make.
|
\texttt{t.c} source de la cible par défaut du make.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
@ -182,13 +182,13 @@ dans un emplacement approprié, par exemple
|
|||||||
|
|
||||||
Le script \texttt{install.sh}, à la racine du projet, est censé
|
Le script \texttt{install.sh}, à la racine du projet, est censé
|
||||||
faciliter un peu la chose. Il prend également en compte la copie
|
faciliter un peu la chose. Il prend également en compte la copie
|
||||||
des divers binaires du dossier \texttt{tools/} (cf. page \pageref{outils})
|
des outils (cf. page \pageref{outils}) dans le répertoire
|
||||||
dans le répertoire prévu à cet effet : \texttt{/usr/local/bin}.
|
prévu à cet effet : \texttt{/usr/local/bin}.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{Utilisation coté codeur}\label{codaz}
|
\section{Utilisation coté codeur}\label{codaz}
|
||||||
|
|
||||||
Classiquement, il y a un fichier \texttt{.h} à inclure dans chacun de code
|
Classiquement, il y a un fichier à inclure dans chacun de code
|
||||||
source,
|
source,
|
||||||
\texttt{floatimg.h}, généralement logé dans \texttt{/usr/local/include}
|
\texttt{floatimg.h}, généralement logé dans \texttt{/usr/local/include}
|
||||||
contenant un certain nombre de définition de structures, de macros,
|
contenant un certain nombre de définition de structures, de macros,
|
||||||
@ -292,8 +292,8 @@ int fimg_plot_rgb (FloatImg *head, int x, int y,
|
|||||||
Les paramètres sont explicites, mais leur validité doit être
|
Les paramètres sont explicites, mais leur validité doit être
|
||||||
sévèrement controlée par l'appelant. Il y a une fonction
|
sévèrement controlée par l'appelant. Il y a une fonction
|
||||||
soeur, \texttt{fimg\_add\_rgb}\index{fimg\_add\_rgb},
|
soeur, \texttt{fimg\_add\_rgb}\index{fimg\_add\_rgb},
|
||||||
qui ajoute du rgb à un pixel, laquelle a d'ailleurs été
|
qui ajoute du rgb à un pixel, laquelle a d'ailleur été
|
||||||
à la base de la seconde génération de la
|
la base de la seconde génération de la
|
||||||
photographie\index{photographie} en cumul\index{cumul}.
|
photographie\index{photographie} en cumul\index{cumul}.
|
||||||
|
|
||||||
\subsubsection{Contraste}\index{contraste}
|
\subsubsection{Contraste}\index{contraste}
|
||||||
@ -554,8 +554,7 @@ Il reste plein de choses à faire pour que ce soit vraiment utilisable.
|
|||||||
|
|
||||||
Nous allons \textsl{essayer d'improviser} un exemple presque réel,
|
Nous allons \textsl{essayer d'improviser} un exemple presque réel,
|
||||||
avec un peu de rache\index{rache} dedans. Ce qui est autorisé dans
|
avec un peu de rache\index{rache} dedans. Ce qui est autorisé dans
|
||||||
les exemples, mais dans la vrai vie, il ne faut jamais négliger
|
les exemples.
|
||||||
le traitement des éventuelles erreurs.
|
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
@ -588,10 +587,6 @@ que votre \texttt{drand48} n'est pas si drand que ça. Séquence angoisse.
|
|||||||
|
|
||||||
:wq
|
:wq
|
||||||
|
|
||||||
\subsection{Fonderie}\index{fonderie}\label{fonderie}
|
|
||||||
|
|
||||||
:wq
|
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{Video for Linux}\index{v4l2}
|
\section{Video for Linux}\index{v4l2}
|
||||||
|
|
||||||
@ -616,7 +611,6 @@ séquences.
|
|||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
tth@debian:~/Devel/FloatImg/v4l2$ ./grabvidseq -h
|
tth@debian:~/Devel/FloatImg/v4l2$ ./grabvidseq -h
|
||||||
options :
|
options :
|
||||||
-c quux contrast adjustement
|
|
||||||
-d /dev/? select video device
|
-d /dev/? select video device
|
||||||
-g convert to gray
|
-g convert to gray
|
||||||
-n NNN how many frames ?
|
-n NNN how many frames ?
|
||||||
@ -679,7 +673,7 @@ Options :
|
|||||||
-v increase verbosity
|
-v increase verbosity
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Je me sens obligé d'avouer qu'il reste quelques points mystérieux dans
|
Je me sois d'avouer qu'il reste quelques points mystérieux dans
|
||||||
l'\textsc{api} de \textsc{v4l2}, et donc, que ce que raconte
|
l'\textsc{api} de \textsc{v4l2}, et donc, que ce que raconte
|
||||||
ce logiciel doit être pris avec des pincettes. En particulier
|
ce logiciel doit être pris avec des pincettes. En particulier
|
||||||
la liste des résolutions disponibles.
|
la liste des résolutions disponibles.
|
||||||
@ -696,8 +690,7 @@ en mode portnawak\dots
|
|||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
L'idée est donc de construire un appareil autonome, basé sur un Raspi et
|
L'idée est donc de construire un appareil autonome, basé sur un Raspi et
|
||||||
une webcam \textsc{usb}\index{USB}, pilotable par \textsc{lirc}\index{LIRC},
|
une webcam \textsc{usb}\index{USB}, alimenté par batterie et permettant d'aller
|
||||||
alimenté par une (grosse) batterie et permettant d'aller
|
|
||||||
faire des images au bord d'un lac ou dans la campagne de l'Ariège.
|
faire des images au bord d'un lac ou dans la campagne de l'Ariège.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
|
@ -8,7 +8,7 @@ OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o \
|
|||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
|
|
||||||
t: t.c $(DEPS) ../libfloatimg.a
|
t: t.c $(DEPS) ../libfloatimg.a
|
||||||
gcc $(COPT) $< ../libfloatimg.a -lnetpbm -lpnglite -lz -lm -o $@
|
gcc $(COPT) $< ../libfloatimg.a -lnetpbm -lpnglite -lm -o $@
|
||||||
|
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ AR=ar
|
|||||||
all: $(OBJS) ../libfloatimg.a
|
all: $(OBJS) ../libfloatimg.a
|
||||||
|
|
||||||
t: t.c ../libfloatimg.a $(DEPS)
|
t: t.c ../libfloatimg.a $(DEPS)
|
||||||
gcc $(COPT) $< ../libfloatimg.a -lpnglite -lz -lm -o $@
|
gcc $(COPT) $< ../libfloatimg.a -lpnglite -lm -o $@
|
||||||
|
|
||||||
# --------------------------------------------
|
# --------------------------------------------
|
||||||
|
|
||||||
|
@ -55,10 +55,11 @@ return 0;
|
|||||||
int fimg_desaturate(FloatImg *src, FloatImg *dst, int k)
|
int fimg_desaturate(FloatImg *src, FloatImg *dst, int k)
|
||||||
{
|
{
|
||||||
int foo, nbb;
|
int foo, nbb;
|
||||||
|
float fval;
|
||||||
|
|
||||||
/* we must check the validity of our parameters */
|
/* we must check the validity of our parameters */
|
||||||
if (FIMG_TYPE_RGB != src->type || FIMG_TYPE_RGB != dst->type) {
|
if (FIMG_TYPE_RGB != src->type || FIMG_TYPE_RGB != dst->type) {
|
||||||
fprintf(stderr, "%s : bad image type\n", __func__);
|
fprintf(stderr, "%s : bad image type\n", __func__, src->type, src);
|
||||||
return -18;
|
return -18;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* OPERATORS
|
* OPERATORS
|
||||||
*
|
*
|
||||||
* operations entre des images.
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -67,8 +67,6 @@ for (idx=0; idx<nbpixels; idx++) {
|
|||||||
b->R[idx] += a->R[idx];
|
b->R[idx] += a->R[idx];
|
||||||
b->G[idx] += a->G[idx];
|
b->G[idx] += a->G[idx];
|
||||||
b->B[idx] += a->B[idx];
|
b->B[idx] += a->B[idx];
|
||||||
/* are we cache-friendly here ?
|
|
||||||
* we need an accurate benchmarking... */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -30,12 +30,8 @@ fimg2pnm: fimg2pnm.c $(DEPS)
|
|||||||
gcc $(COPT) $< ../libfloatimg.a -o $@
|
gcc $(COPT) $< ../libfloatimg.a -o $@
|
||||||
|
|
||||||
fimg2png: fimg2png.c $(DEPS)
|
fimg2png: fimg2png.c $(DEPS)
|
||||||
gcc $(COPT) $< ../libfloatimg.a -lpnglite -lz -o $@
|
gcc $(COPT) $< ../libfloatimg.a -lpnglite -o $@
|
||||||
|
|
||||||
#
|
|
||||||
# this tool require an external library
|
|
||||||
# http://la.buvette.org/devel/libimage/libimage.html
|
|
||||||
#
|
|
||||||
addtga2fimg: addtga2fimg.c $(DEPS)
|
addtga2fimg: addtga2fimg.c $(DEPS)
|
||||||
gcc $(COPT) $< ../libfloatimg.a -limageSO -lm -o $@
|
gcc $(COPT) $< ../libfloatimg.a -limageSO -lm -o $@
|
||||||
|
|
||||||
@ -45,5 +41,5 @@ addpnm2fimg: addpnm2fimg.c $(DEPS)
|
|||||||
|
|
||||||
# if "undefined reference to crc32" then "use -lz"
|
# if "undefined reference to crc32" then "use -lz"
|
||||||
png2fimg: png2fimg.c $(DEPS)
|
png2fimg: png2fimg.c $(DEPS)
|
||||||
gcc $(COPT) $< ../libfloatimg.a -lpnglite -lz -o $@
|
gcc $(COPT) $< ../libfloatimg.a -lpnglite -o $@
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
COPT = -Wall -fpic -g -no-pie -DDEBUG_LEVEL=0
|
COPT = -Wall -fpic -g -no-pie -DDEBUG_LEVEL=0
|
||||||
DEPS = ../floatimg.h ../libfloatimg.a Makefile
|
DEPS = ../floatimg.h ../libfloatimg.a Makefile
|
||||||
|
|
||||||
all: grabvidseq t video-infos
|
all: grabvidseq t
|
||||||
|
|
||||||
t: t.c Makefile ${DEPS} funcs.o v4l2_pr_structs.o
|
t: t.c Makefile ${DEPS} funcs.o v4l2_pr_structs.o
|
||||||
gcc ${COPT} $< funcs.o v4l2_pr_structs.o ../libfloatimg.a -o $@
|
gcc ${COPT} $< funcs.o v4l2_pr_structs.o ../libfloatimg.a -o $@
|
||||||
@ -18,7 +18,7 @@ v4l2_pr_structs.o: v4l2_pr_structs.c v4l2_pr_structs.h Makefile
|
|||||||
gcc ${COPT} -c $<
|
gcc ${COPT} -c $<
|
||||||
|
|
||||||
grabvidseq: grabvidseq.c ${DEPS} rgb2fimg.o
|
grabvidseq: grabvidseq.c ${DEPS} rgb2fimg.o
|
||||||
gcc ${COPT} $< rgb2fimg.o ../libfloatimg.a -lz -lm -lv4l2 -o $@
|
gcc ${COPT} $< rgb2fimg.o ../libfloatimg.a -lm -lv4l2 -o $@
|
||||||
|
|
||||||
video-infos: video-infos.c Makefile funcs.o v4l2_pr_structs.o
|
video-infos: video-infos.c Makefile funcs.o v4l2_pr_structs.o
|
||||||
gcc -Wall -g $< funcs.o v4l2_pr_structs.o -o $@
|
gcc -Wall -g $< funcs.o v4l2_pr_structs.o -o $@
|
||||||
|
Loading…
Reference in New Issue
Block a user