From 0e279275df9887c5138a26e55aae206f944d91f8 Mon Sep 17 00:00:00 2001 From: tth Date: Wed, 28 Aug 2019 21:08:59 +0200 Subject: [PATCH] moving things around... --- doc/the_floatimg_hack.tex | 31 ++++++++++++++++++++++++++++--- essai.c | 21 --------------------- floatimg.h | 3 ++- funcs/Makefile | 5 ++++- funcs/utils.c | 31 +++++++++++++++++++++++++++++++ 5 files changed, 65 insertions(+), 26 deletions(-) create mode 100644 funcs/utils.c diff --git a/doc/the_floatimg_hack.tex b/doc/the_floatimg_hack.tex index f2e4688..16c327d 100644 --- a/doc/the_floatimg_hack.tex +++ b/doc/the_floatimg_hack.tex @@ -180,12 +180,10 @@ le champ \textsl{fval} sera initialisé à 15.0 (valeur maximale renvoyée par le capteur). Ensuite, dans la boucle capture/cumul, \textsl{count} sera incrémenté à chaque passe, et nous aurons donc, en finale, -toutes les informations nécéssaire pour exploiter au mieux la dynamique +toutes les informations nécessaires pour exploiter au mieux la dynamique de notre image dans les étapes ultérieures. - - \subsection{lib/}\index{lib/} Première chose, la gestion dynamique de la mémoire occupées @@ -212,6 +210,12 @@ flottantes ? Une bonne partie de ces fonctions est indéterministe. Ce qui veut dire, en langage de tous les soirs, que ça risque de ne pas être la même chose dans l'avenir. +\vspace{1em} + +On y trouve pêle-mêle de l'import/export de fichiers, de l'analyse +de chaines de caractères, du tracé de choses bizarres\dots +Plein de trucs qu'il faudra bien expliquer un jour\footnote{Mais +il fait trop chaud dans le dd2\index{dd2}}. % ------------------------------------------------------------------- \section{Les outils}\label{outils} @@ -241,6 +245,14 @@ l'on peut assimiler à un noir absolu\index{absolu}. Affichage de quelques valeurs calculées à partir d'un fichier \texttt{.fimg}\index{.fimg}. +\subsection{fimgops}\index{fimgops}\label{fimgops} + +Operations diverses sur ou entre des images. + +Syntaxe CLI\index{CLI} à définir. + + + \subsection{fimg2png, fimg2pnm, fimg2tiff} \index{fimg2png}\label{fimg2png} \index{fimg2pnm}\label{fimg2pnm} @@ -260,6 +272,14 @@ Il faut quand même deviner que pour passer de l'espace RGB\index{RGB} à une abstraction linéaire mono-dimensionnelle, il existe une foultitude de méthodes, toutes plus légitimes que les autres. +% ------------------------------------------------------------------- +\section{TODO}\index{TODO}\label{TODO} + +Il reste plein de choses à faire pour que ce soit vraiment utilisable. +\vspace{1em} + + + % ------------------------------------------------------------------- \section{Video for Linux}\index{v4l2} @@ -283,6 +303,11 @@ un Linux\index{Linux}, et ça \textsl{juste marche}. Sauf que c'est quand même un peu galère à déplacer, il faut avoir un shell pour déclencher, c'est pas facile à utiliser 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 +faire des images au bord d'un lac. % ------------------------------------------------------------------- diff --git a/essai.c b/essai.c index 2ba3e7c..ba511ae 100644 --- a/essai.c +++ b/essai.c @@ -31,27 +31,6 @@ fprintf(stderr, "%s = %f seconds\n", __func__, tb); puts(""); } /* --------------------------------------------------------------------- */ -int parse_WxH(char *str, int *pw, int *ph) -{ -// char *ptr; -int foo, w, h; - -#if DEBUG_LEVEL -fprintf(stderr, ">>> %s ( '%s' %p %p )\n", __func__, - str, pw, ph); -#endif - -foo = sscanf(str, "%dx%d", &w, &h); -if (2 != foo) { - fprintf(stderr, "%s : arg '%s' is invalid\n", __func__, str); - return foo; - } - -*pw = w; *ph = h; - -return 2; -} -/* --------------------------------------------------------------------- */ void help(int k) { puts("Options :"); diff --git a/floatimg.h b/floatimg.h index af4fb35..35e9a17 100644 --- a/floatimg.h +++ b/floatimg.h @@ -2,7 +2,7 @@ * floatimg.h */ -#define FIMG_VERSION 66 +#define FIMG_VERSION 67 /* * in memory descriptor @@ -80,5 +80,6 @@ int fimg_save_as_png(FloatImg *src, char *outname, int flags); int fimg_draw_something(FloatImg *fimg); +int parse_WxH(char *str, int *pw, int *ph); diff --git a/funcs/Makefile b/funcs/Makefile index 7661ba6..8f4e6c1 100644 --- a/funcs/Makefile +++ b/funcs/Makefile @@ -2,7 +2,7 @@ COPT = -Wall -fpic -g -no-pie -pg -DDEBUG_LEVEL=0 DEPS = ../floatimg.h Makefile -OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o +OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o #--------------------------------------------------------------- @@ -20,3 +20,6 @@ misc-plots.o: misc-plots.c $(DEPS) filtrage.o: filtrage.c $(DEPS) gcc $(COPT) -c $< + +utils.o: utils.c $(DEPS) + gcc $(COPT) -c $< diff --git a/funcs/utils.c b/funcs/utils.c new file mode 100644 index 0000000..f88bdf7 --- /dev/null +++ b/funcs/utils.c @@ -0,0 +1,31 @@ + + +#include + + +#include "../floatimg.h" + +extern int verbosity; /* must be declared around main() */ + +/* --------------------------------------------------------------------- */ +int parse_WxH(char *str, int *pw, int *ph) +{ +// char *ptr; +int foo, w, h; + +#if DEBUG_LEVEL +fprintf(stderr, ">>> %s ( '%s' %p %p )\n", __func__, + str, pw, ph); +#endif + +foo = sscanf(str, "%dx%d", &w, &h); +if (2 != foo) { + fprintf(stderr, "%s : arg '%s' is invalid\n", __func__, str); + return foo; + } + +*pw = w; *ph = h; + +return 2; +} +/* --------------------------------------------------------------------- */