Compare commits

..

4 Commits

Author SHA1 Message Date
bf5058b8d7 pas encore assez de doc... 2020-01-23 12:50:37 +01:00
e804534715 added -lz to ld flags (for Fedora ?) 2020-01-23 12:38:19 +01:00
cc9619fdbe minors twicks 2020-01-23 12:36:33 +01:00
87f3fb95bd missing target 2020-01-22 22:43:16 +01:00
8 changed files with 35 additions and 23 deletions

View File

@ -11,12 +11,12 @@ all: essai
#---------------------------------------------------------------
essai: essai.c libfloatimg.a floatimg.h Makefile
gcc $(COPT) $< $(LDOPT) -lpnglite -o $@
gcc $(COPT) $< $(LDOPT) -lpnglite -lz -o $@
#---------------------------------------------------------------
TOTAR = *.[ch] Makefile *.sh *.txt \
doc/*.tex doc/mkdoc.sh \
doc/*.tex doc/mkdoc.sh doc/*.txt \
funcs/*.[ch] funcs/Makefile \
tools/*.[ch] tools/Makefile \
v4l2/*.[ch] v4l2/Makefile \

View File

@ -150,7 +150,7 @@ lesquels sont décrits en page \pageref{outils}.
Vous devez, en dehors des outils classiques (bash, gcc, make\dots),
avoir quelques bibliothèques installées\footnote{Les \texttt{-dev}
pour Debain et dérivées}~: libv4l2, libpnglite, libtiff, libnetpbm,
pour Debian et dérivées}~: libv4l2, libpnglite, libtiff, libnetpbm,
et probablement d'autres choses.
\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
le bouzin. Il est loin d'être parfait\footnote{Il doit être possible
de faire un Makefile récursif, mais\dots}.
Dans chacun des
répertoires à traiter, ce script devrait trouver un Makefile et un fichier
\texttt{t.c} source de la cible par défaut du make.
Dans chacun des répertoires à traiter, ce script devrait trouver
un Makefile et un fichier \texttt{t.c} qui est le source de la cible
par défaut du make.
\vspace{1em}
@ -182,13 +182,13 @@ dans un emplacement approprié, par exemple
Le script \texttt{install.sh}, à la racine du projet, est censé
faciliter un peu la chose. Il prend également en compte la copie
des outils (cf. page \pageref{outils}) dans le répertoire
prévu à cet effet : \texttt{/usr/local/bin}.
des divers binaires du dossier \texttt{tools/} (cf. page \pageref{outils})
dans le répertoire prévu à cet effet : \texttt{/usr/local/bin}.
% -------------------------------------------------------------------
\section{Utilisation coté codeur}\label{codaz}
Classiquement, il y a un fichier à inclure dans chacun de code
Classiquement, il y a un fichier \texttt{.h} à inclure dans chacun de code
source,
\texttt{floatimg.h}, généralement logé dans \texttt{/usr/local/include}
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
sévèrement controlée par l'appelant. Il y a une fonction
soeur, \texttt{fimg\_add\_rgb}\index{fimg\_add\_rgb},
qui ajoute du rgb à un pixel, laquelle a d'ailleur été
la base de la seconde génération de la
qui ajoute du rgb à un pixel, laquelle a d'ailleurs été
à la base de la seconde génération de la
photographie\index{photographie} en cumul\index{cumul}.
\subsubsection{Contraste}\index{contraste}
@ -554,7 +554,8 @@ Il reste plein de choses à faire pour que ce soit vraiment utilisable.
Nous allons \textsl{essayer d'improviser} un exemple presque réel,
avec un peu de rache\index{rache} dedans. Ce qui est autorisé dans
les exemples.
les exemples, mais dans la vrai vie, il ne faut jamais négliger
le traitement des éventuelles erreurs.
\vspace{1em}
@ -587,6 +588,10 @@ que votre \texttt{drand48} n'est pas si drand que ça. Séquence angoisse.
:wq
\subsection{Fonderie}\index{fonderie}\label{fonderie}
:wq
% -------------------------------------------------------------------
\section{Video for Linux}\index{v4l2}
@ -611,6 +616,7 @@ séquences.
\begin{verbatim}
tth@debian:~/Devel/FloatImg/v4l2$ ./grabvidseq -h
options :
-c quux contrast adjustement
-d /dev/? select video device
-g convert to gray
-n NNN how many frames ?
@ -673,7 +679,7 @@ Options :
-v increase verbosity
\end{verbatim}
Je me sois d'avouer qu'il reste quelques points mystérieux dans
Je me sens obligé d'avouer qu'il reste quelques points mystérieux dans
l'\textsc{api} de \textsc{v4l2}, et donc, que ce que raconte
ce logiciel doit être pris avec des pincettes. En particulier
la liste des résolutions disponibles.
@ -690,7 +696,8 @@ en mode portnawak\dots
\vspace{1em}
L'idée est donc de construire un appareil autonome, basé sur un Raspi et
une webcam \textsc{usb}\index{USB}, alimenté par batterie et permettant d'aller
une webcam \textsc{usb}\index{USB}, pilotable par \textsc{lirc}\index{LIRC},
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.
% -------------------------------------------------------------------

View File

@ -8,7 +8,7 @@ OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o \
#---------------------------------------------------------------
t: t.c $(DEPS) ../libfloatimg.a
gcc $(COPT) $< ../libfloatimg.a -lnetpbm -lpnglite -lm -o $@
gcc $(COPT) $< ../libfloatimg.a -lnetpbm -lpnglite -lz -lm -o $@
#---------------------------------------------------------------

View File

@ -16,7 +16,7 @@ AR=ar
all: $(OBJS) ../libfloatimg.a
t: t.c ../libfloatimg.a $(DEPS)
gcc $(COPT) $< ../libfloatimg.a -lpnglite -lm -o $@
gcc $(COPT) $< ../libfloatimg.a -lpnglite -lz -lm -o $@
# --------------------------------------------

View File

@ -55,11 +55,10 @@ return 0;
int fimg_desaturate(FloatImg *src, FloatImg *dst, int k)
{
int foo, nbb;
float fval;
/* we must check the validity of our parameters */
if (FIMG_TYPE_RGB != src->type || FIMG_TYPE_RGB != dst->type) {
fprintf(stderr, "%s : bad image type\n", __func__, src->type, src);
fprintf(stderr, "%s : bad image type\n", __func__);
return -18;
}

View File

@ -1,7 +1,7 @@
/*
* OPERATORS
*
*
* operations entre des images.
*/
#include <stdio.h>
@ -67,6 +67,8 @@ for (idx=0; idx<nbpixels; idx++) {
b->R[idx] += a->R[idx];
b->G[idx] += a->G[idx];
b->B[idx] += a->B[idx];
/* are we cache-friendly here ?
* we need an accurate benchmarking... */
}
return 0;

View File

@ -30,8 +30,12 @@ fimg2pnm: fimg2pnm.c $(DEPS)
gcc $(COPT) $< ../libfloatimg.a -o $@
fimg2png: fimg2png.c $(DEPS)
gcc $(COPT) $< ../libfloatimg.a -lpnglite -o $@
gcc $(COPT) $< ../libfloatimg.a -lpnglite -lz -o $@
#
# this tool require an external library
# http://la.buvette.org/devel/libimage/libimage.html
#
addtga2fimg: addtga2fimg.c $(DEPS)
gcc $(COPT) $< ../libfloatimg.a -limageSO -lm -o $@
@ -41,5 +45,5 @@ addpnm2fimg: addpnm2fimg.c $(DEPS)
# if "undefined reference to crc32" then "use -lz"
png2fimg: png2fimg.c $(DEPS)
gcc $(COPT) $< ../libfloatimg.a -lpnglite -o $@
gcc $(COPT) $< ../libfloatimg.a -lpnglite -lz -o $@

View File

@ -3,7 +3,7 @@
COPT = -Wall -fpic -g -no-pie -DDEBUG_LEVEL=0
DEPS = ../floatimg.h ../libfloatimg.a Makefile
all: grabvidseq t
all: grabvidseq t video-infos
t: t.c Makefile ${DEPS} funcs.o v4l2_pr_structs.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 $<
grabvidseq: grabvidseq.c ${DEPS} rgb2fimg.o
gcc ${COPT} $< rgb2fimg.o ../libfloatimg.a -lm -lv4l2 -o $@
gcc ${COPT} $< rgb2fimg.o ../libfloatimg.a -lz -lm -lv4l2 -o $@
video-infos: video-infos.c Makefile funcs.o v4l2_pr_structs.o
gcc -Wall -g $< funcs.o v4l2_pr_structs.o -o $@