bla
This commit is contained in:
parent
7afe2b1b63
commit
0eff0039eb
@ -41,6 +41,11 @@ composante, mais c'est loin d'être le cas général.
|
|||||||
J'ai donc souhaité aller plus loin, et coder chaque canal de
|
J'ai donc souhaité aller plus loin, et coder chaque canal de
|
||||||
chaque pixel en virgule flottante sur 32bits, le type
|
chaque pixel en virgule flottante sur 32bits, le type
|
||||||
\texttt{float}\index{float} du langage C.
|
\texttt{float}\index{float} du langage C.
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
|
Attention, tout le code que nous allons voir ensemble est en
|
||||||
|
perpétuelle évolution\footnote{voir page \pageref{TODO}},
|
||||||
|
et sa fiablité reste à démontrer\index{valgrind}.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
@ -50,6 +55,13 @@ chaque pixel en virgule flottante sur 32bits, le type
|
|||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{Premier example}\index{example}\label{example}
|
\section{Premier example}\index{example}\label{example}
|
||||||
|
|
||||||
|
\textsc{FloatImg} a débuté sous la forme de quelques fonctions
|
||||||
|
basiques en C, gérant la structure des données d'image en mémoire
|
||||||
|
et sur disque.
|
||||||
|
Nous allons donc directement rentrer au cœur du problème.
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
Pour commencer par quelques chose de simple,
|
Pour commencer par quelques chose de simple,
|
||||||
nous allons créer une image RGB\index{RGB} complètement noire,
|
nous allons créer une image RGB\index{RGB} complètement noire,
|
||||||
puis l'enregistrer dans un fichier \texttt{.fimg}\index{.fimg},
|
puis l'enregistrer dans un fichier \texttt{.fimg}\index{.fimg},
|
||||||
@ -70,7 +82,7 @@ en mémoire centrale, initialisations des valeurs de pixel à 0.0,
|
|||||||
et pour conclure, enregistrement dans un fichier.
|
et pour conclure, enregistrement dans un fichier.
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
foo = fimg_create(&fimg, width, height, 3);
|
foo = fimg_create(&fimg, width, height, FIMG_TYPE_RGB);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "create floatimg -> %d\n", foo);
|
fprintf(stderr, "create floatimg -> %d\n", foo);
|
||||||
exit(1);
|
exit(1);
|
||||||
@ -90,7 +102,7 @@ nous pouvons entrevoir, grâce au logiciel
|
|||||||
le résultat sous forme de chiffres divers, et/ou inutiles~:
|
le résultat sous forme de chiffres divers, et/ou inutiles~:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
$ ./fimgstats quux.img
|
$ ./fimgstats quux.img
|
||||||
----------- numbers from 'quux.img' :
|
----------- numbers from 'quux.img' :
|
||||||
640 480 3 0x7f3718c4f010 0x7f3718d7b010 0x7f3718ea7010
|
640 480 3 0x7f3718c4f010 0x7f3718d7b010 0x7f3718ea7010
|
||||||
surface 307200
|
surface 307200
|
||||||
@ -102,24 +114,36 @@ mean values:
|
|||||||
max value 0.000000
|
max value 0.000000
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
Nous avons donc sous la main une mécanique qui ne demande qu'à
|
||||||
|
faire des trucs futiles et des images qui clignotent.
|
||||||
|
La suite vers la page \pageref{codaz}.
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
Vous trouverez dans le répertoire \texttt{tools/}\index{tools/}
|
Vous trouverez dans le répertoire \texttt{tools/}\index{tools/}
|
||||||
d'autres exemples de mise en œuvre des fonctions disponibles
|
d'autres exemples de mise en œuvre des fonctions disponibles
|
||||||
sous formes d'outils en ligne de commande, décrits page \pageref{outils}.
|
sous formes d'outils en ligne de commande,
|
||||||
|
décrits en page \pageref{outils}.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{Installation}
|
\section{Installation}
|
||||||
|
|
||||||
\subsection{Prérequis}
|
\subsection{Prérequis}
|
||||||
|
|
||||||
Vous devez, en dehors des outils classiques (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, et
|
||||||
probablement d'autres choses.
|
probablement d'autres choses. Être familier avec l'utilisation du
|
||||||
|
shell\index{shell} sera un plus.
|
||||||
|
|
||||||
\subsection{Compilation}
|
\subsection{Compilation}
|
||||||
|
|
||||||
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.
|
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.
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
Pour le moment, la procédure d'installation est un peu rude,
|
Pour le moment, la procédure d'installation est un peu rude,
|
||||||
@ -131,7 +155,7 @@ approprié, par exemple
|
|||||||
\texttt{/usr/local/include} et \texttt{/usr/local/lib}.
|
\texttt{/usr/local/include} et \texttt{/usr/local/lib}.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{Utilisation coté codeur}
|
\section{Utilisation coté codeur}\label{codaz}
|
||||||
|
|
||||||
Classiquement, il y a un fichier à inclure, \texttt{floatimg.h},
|
Classiquement, il y a un fichier à inclure, \texttt{floatimg.h},
|
||||||
contenant un certain nombre de
|
contenant un certain nombre de
|
||||||
@ -260,12 +284,20 @@ l'on peut assimiler à un noir absolu\index{absolu}.
|
|||||||
Affichage de quelques valeurs calculées à partir d'un fichier
|
Affichage de quelques valeurs calculées à partir d'un fichier
|
||||||
\texttt{.fimg}\index{.fimg}.
|
\texttt{.fimg}\index{.fimg}.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
usage : fimgstats [options] file.fimg
|
||||||
|
-c make a machinable csv
|
||||||
|
-v increase verbosity
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
\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.
|
||||||
|
|
||||||
Syntaxe CLI\index{CLI} à définir.
|
\begin{verbatim}
|
||||||
|
Usage:
|
||||||
|
fimgops [options] A.fimg B.fimg operator D.fimg
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
\subsection{fimg2png, fimg2pnm, fimg2tiff}
|
\subsection{fimg2png, fimg2pnm, fimg2tiff}
|
||||||
@ -301,6 +333,26 @@ Il reste plein de choses à faire pour que ce soit vraiment utilisable.
|
|||||||
\
|
\
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
% -------------------------------------------------------------------
|
||||||
|
\section{Exemples pour yusers}\index{example}
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ACCU="quux.fimg"
|
||||||
|
TMPF="tmp.fimg"
|
||||||
|
DIMS="640 480"
|
||||||
|
|
||||||
|
mkfimg ${ACCU} ${DIMS}
|
||||||
|
|
||||||
|
for i in {0..100}
|
||||||
|
do
|
||||||
|
fname=$( printf "f%04d.pnm" $i )
|
||||||
|
echo $fname
|
||||||
|
mkfimg -t drand48 ${TMPF} ${DIMS}
|
||||||
|
done
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{Video for Linux}\index{v4l2}
|
\section{Video for Linux}\index{v4l2}
|
||||||
|
|
||||||
@ -334,6 +386,10 @@ options :
|
|||||||
-v increase verbosity
|
-v increase verbosity
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
\subsection{video-infos}\index{video-infos}\label{video-infos}
|
||||||
|
|
||||||
|
Que contient, que peut faire mon périphérique \textsl{àlc} ?
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{Et pour la suite ?}
|
\section{Et pour la suite ?}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user