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/*.ilg
|
||||||
doc/*.ind
|
doc/*.ind
|
||||||
|
|
||||||
|
funcs/t
|
||||||
|
|
||||||
v4l2/t
|
v4l2/t
|
||||||
v4l2/capture
|
v4l2/capture
|
||||||
v4l2/grabvidseq
|
v4l2/grabvidseq
|
||||||
|
@ -132,9 +132,10 @@ 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 Debain et dérivées}~: libv4l2, libpnglite, libtiff, et
|
pour Debain et dérivées}~: libv4l2, libpnglite, libtiff, libpnm,
|
||||||
probablement d'autres choses. Être familier avec l'utilisation du
|
et probablement d'autres choses.
|
||||||
shell\index{shell} sera un plus.
|
Être familier avec l'utilisation du shell\index{shell} et l'écriture
|
||||||
|
de Makefile's sera un plus.
|
||||||
|
|
||||||
\subsection{Compilation}
|
\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
|
puisqu'il n'y a que la valeur par defaut : \textbf{0.0} que
|
||||||
l'on peut assimiler à un noir absolu\index{absolu}.
|
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}
|
\subsection{fimgstats}\index{fimgstats}\label{fimgstats}
|
||||||
|
|
||||||
Affichage de quelques valeurs calculées à partir d'un fichier
|
Affichage de quelques valeurs calculées à partir d'un fichier
|
||||||
@ -290,6 +304,9 @@ usage : fimgstats [options] file.fimg
|
|||||||
-v increase verbosity
|
-v increase verbosity
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
À vrai dire, je ne sais pas encore quelles métriques seront utiles
|
||||||
|
en première approche.
|
||||||
|
|
||||||
\subsection{fimgops}\index{fimgops}\label{fimgops}
|
\subsection{fimgops}\index{fimgops}\label{fimgops}
|
||||||
|
|
||||||
Operations diverses sur ou entre des images.
|
Operations diverses sur ou entre des images.
|
||||||
@ -308,7 +325,7 @@ options:
|
|||||||
-v increase verbosity
|
-v increase verbosity
|
||||||
\end{verbatim}
|
\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}.
|
être fourni en utilisant l'option \texttt{-k}.
|
||||||
|
|
||||||
\subsection{fimg2png, fimg2pnm, fimg2tiff}
|
\subsection{fimg2png, fimg2pnm, fimg2tiff}
|
||||||
@ -339,8 +356,10 @@ Il reste plein de choses à faire pour que ce soit vraiment utilisable.
|
|||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
|
||||||
\item Import/export au format \textsc{tiff}\index{tiff}.
|
\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 Compléter les traitements mathémathiques (eg le gamma\index{gamma}).
|
||||||
|
\item Formaliser les codes d'erreur.
|
||||||
\
|
\
|
||||||
\end{itemize}
|
\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
|
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)
|
fimg-tiff.o: fimg-tiff.c $(DEPS)
|
||||||
gcc $(COPT) -c $<
|
gcc $(COPT) -c $<
|
||||||
|
|
||||||
|
fimg-libpnm.o: fimg-libpnm.c $(DEPS)
|
||||||
|
gcc $(COPT) -c $<
|
||||||
|
|
||||||
misc-plots.o: misc-plots.c $(DEPS)
|
misc-plots.o: misc-plots.c $(DEPS)
|
||||||
gcc $(COPT) -c $<
|
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;
|
datasize = png.width * png.height * png.bpp;
|
||||||
|
|
||||||
if ( 3 != 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);
|
png.color_type, filename);
|
||||||
return -21;
|
return -21;
|
||||||
}
|
}
|
||||||
@ -93,7 +94,7 @@ if (foo) {
|
|||||||
|
|
||||||
foo = png_get_data(&png, datas);
|
foo = png_get_data(&png, datas);
|
||||||
if (PNG_NO_ERROR != foo) {
|
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));
|
__func__, foo, pngerr2str(foo));
|
||||||
return 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);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
fimg_describe(&fimg, "oups");
|
fimg_describe(&fimg, argv[2]);
|
||||||
|
|
||||||
foo = fimg_dump_to_file(&fimg, argv[2], 0);
|
foo = fimg_dump_to_file(&fimg, argv[2], 0);
|
||||||
fprintf(stderr, "save as fimg -> %d\n", foo);
|
fprintf(stderr, "save as fimg -> %d\n", foo);
|
||||||
|
Loading…
Reference in New Issue
Block a user