Compare commits
4 Commits
a301a492df
...
8b185f02e2
Author | SHA1 | Date | |
---|---|---|---|
8b185f02e2 | |||
723319ea15 | |||
8f2c39ec02 | |||
5726161571 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -21,6 +21,8 @@ doc/*.idx
|
||||
doc/*.ilg
|
||||
doc/*.ind
|
||||
|
||||
funcs/t
|
||||
|
||||
v4l2/t
|
||||
v4l2/capture
|
||||
v4l2/grabvidseq
|
||||
|
@ -132,9 +132,10 @@ 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, et
|
||||
probablement d'autres choses. Être familier avec l'utilisation du
|
||||
shell\index{shell} sera un plus.
|
||||
pour Debain et dérivées}~: libv4l2, libpnglite, libtiff, libpnm,
|
||||
et probablement d'autres choses.
|
||||
Être familier avec l'utilisation du shell\index{shell} et l'écriture
|
||||
de Makefile's sera un plus.
|
||||
|
||||
\subsection{Compilation}
|
||||
|
||||
@ -279,6 +280,19 @@ Cette notion de teinte est assez inconsistante pour le moment,
|
||||
puisqu'il n'y a que la valeur par defaut : \textbf{0.0} que
|
||||
l'on peut assimiler à un noir absolu\index{absolu}.
|
||||
|
||||
|
||||
\subsection{png2fimg}\index{png2fimg}\label{png2fimg}
|
||||
|
||||
Grosse panne à réparer.
|
||||
|
||||
\begin{verbatim}
|
||||
tth@debian:~/TMP/floatimg$ png2fimg A.png foo.fimg
|
||||
error in 'fimg_create_from_png' : read png -> -1 File error
|
||||
png2fimg : err -1, abort.
|
||||
\end{verbatim}
|
||||
|
||||
Il faut envisager le passage à \texttt{libpng}\index{libpng}.
|
||||
|
||||
\subsection{fimgstats}\index{fimgstats}\label{fimgstats}
|
||||
|
||||
Affichage de quelques valeurs calculées à partir d'un fichier
|
||||
@ -290,6 +304,9 @@ usage : fimgstats [options] file.fimg
|
||||
-v increase verbosity
|
||||
\end{verbatim}
|
||||
|
||||
À vrai dire, je ne sais pas encore quelles métriques seront utiles
|
||||
en première approche.
|
||||
|
||||
\subsection{fimgops}\index{fimgops}\label{fimgops}
|
||||
|
||||
Operations diverses sur ou entre des images.
|
||||
@ -308,7 +325,7 @@ options:
|
||||
-v increase verbosity
|
||||
\end{verbatim}
|
||||
|
||||
Pour l'operateur \texttt{mix}, le paramêtre flottant doit
|
||||
Pour des operateurs paramétrable (comme \texttt{mix}), le paramêtre flottant doit
|
||||
être fourni en utilisant l'option \texttt{-k}.
|
||||
|
||||
\subsection{fimg2png, fimg2pnm, fimg2tiff}
|
||||
@ -339,8 +356,10 @@ Il reste plein de choses à faire pour que ce soit vraiment utilisable.
|
||||
\begin{itemize}
|
||||
|
||||
\item Import/export au format \textsc{tiff}\index{tiff}.
|
||||
\item Remplacer le « fait-maison » par \textsc{libnetpbm}.
|
||||
\item Remplacer le « fait-maison » par \textsc{libnetpnm}\index{pnm}.
|
||||
\textsl{[en cours]}.
|
||||
\item Compléter les traitements mathémathiques (eg le gamma\index{gamma}).
|
||||
\item Formaliser les codes d'erreur.
|
||||
\
|
||||
\end{itemize}
|
||||
|
||||
|
@ -1,8 +1,14 @@
|
||||
#---------------------------------------------------------------
|
||||
|
||||
COPT = -Wall -fpic -g -no-pie -DDEBUG_LEVEL=0
|
||||
COPT = -Wall -fpic -g -no-pie -DDEBUG_LEVEL=1
|
||||
DEPS = ../floatimg.h Makefile
|
||||
OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o
|
||||
OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o \
|
||||
fimg-libpnm.o
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
t: t.c $(DEPS) ../libfloatimg.a
|
||||
gcc $(COPT) $< ../libfloatimg.a -lnetpbm -o $@
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
@ -15,6 +21,9 @@ fimg-png.o: fimg-png.c $(DEPS)
|
||||
fimg-tiff.o: fimg-tiff.c $(DEPS)
|
||||
gcc $(COPT) -c $<
|
||||
|
||||
fimg-libpnm.o: fimg-libpnm.c $(DEPS)
|
||||
gcc $(COPT) -c $<
|
||||
|
||||
misc-plots.o: misc-plots.c $(DEPS)
|
||||
gcc $(COPT) -c $<
|
||||
|
||||
|
52
funcs/fimg-libpnm.c
Normal file
52
funcs/fimg-libpnm.c
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* interface FloatImg <-> libpnm(3)
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <pam.h>
|
||||
|
||||
#include "../floatimg.h"
|
||||
|
||||
extern int verbosity;
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
static void print_struct_pam(struct pam *ppam, char *txt)
|
||||
{
|
||||
|
||||
printf("size %d\n", ppam->size);
|
||||
|
||||
printf("format %d\n", ppam->format);
|
||||
printf("plainformat %d\n", ppam->plainformat);
|
||||
printf("width & height %d %d\n", ppam->width, ppam->height);
|
||||
printf("depth %d\n", ppam->depth);
|
||||
printf("maxval %lu\n", ppam->maxval);
|
||||
|
||||
}
|
||||
/* --------------------------------------------------------------------- */
|
||||
|
||||
int fimg_pnm_infos(char *fname)
|
||||
{
|
||||
struct pam inpam;
|
||||
FILE *fp;
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, ">>> %s ( '%s' )\n", __func__, fname);
|
||||
#endif
|
||||
|
||||
if (NULL==(fp=fopen(fname, "r"))) {
|
||||
perror(fname);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
pnm_readpaminit(fp, &inpam, sizeof(inpam));
|
||||
|
||||
print_struct_pam(&inpam, fname);
|
||||
|
||||
fclose(fp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* --------------------------------------------------------------------- */
|
@ -64,7 +64,8 @@ fprintf(stderr, "%s opened\n", filename);
|
||||
datasize = png.width * png.height * png.bpp;
|
||||
|
||||
if ( 3 != png.bpp ) {
|
||||
fprintf(stderr, "format %d of '%s' not supported\n",
|
||||
/* I don't really understand this part of the code */
|
||||
fprintf(stderr, "bpp format %d of '%s' not supported\n",
|
||||
png.color_type, filename);
|
||||
return -21;
|
||||
}
|
||||
@ -93,7 +94,7 @@ if (foo) {
|
||||
|
||||
foo = png_get_data(&png, datas);
|
||||
if (PNG_NO_ERROR != foo) {
|
||||
fprintf(stderr, "error in '%s' : read png -> %d %s\n",
|
||||
fprintf(stderr, "error in '%s' :\n\tpng_get_data -> %d = %s\n",
|
||||
__func__, foo, pngerr2str(foo));
|
||||
return foo;
|
||||
}
|
||||
|
25
funcs/t.c
Normal file
25
funcs/t.c
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <pam.h>
|
||||
|
||||
#include "../floatimg.h"
|
||||
|
||||
int fimg_pnm_infos(char *);
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int foo;
|
||||
|
||||
pnm_init(&argc, argv);
|
||||
|
||||
foo = fimg_pnm_infos("foo.pnm");
|
||||
fprintf(stderr, "got %d\n", foo);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* --------------------------------------------------------------------- */
|
@ -31,7 +31,7 @@ if (foo) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fimg_describe(&fimg, "oups");
|
||||
fimg_describe(&fimg, argv[2]);
|
||||
|
||||
foo = fimg_dump_to_file(&fimg, argv[2], 0);
|
||||
fprintf(stderr, "save as fimg -> %d\n", foo);
|
||||
|
Loading…
Reference in New Issue
Block a user