|
|
|
@ -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, libpnm, |
|
|
|
|
pour Debain et dérivées}~: libv4l2, libpnglite, libtiff, libnetpbm, |
|
|
|
|
et probablement d'autres choses. |
|
|
|
|
|
|
|
|
|
\vspace{1em} |
|
|
|
@ -173,22 +173,27 @@ répertoires à traiter, ce script devrait trouver un Makefile et un fichier |
|
|
|
|
|
|
|
|
|
Pour le moment, la procédure d'installation est un peu rude, |
|
|
|
|
pour ne pas dire clairement sommaire. |
|
|
|
|
Si le résultat vous semble correct, vous pouvez copier |
|
|
|
|
les deux fichiers \texttt{floatimg.h} et \texttt{libfloatimg.a} |
|
|
|
|
dans un emplacement |
|
|
|
|
approprié, par exemple |
|
|
|
|
Si le résultat de l'étape compilation vous semble correct, |
|
|
|
|
vous pouvez copier les deux fichiers \texttt{floatimg.h} et \texttt{libfloatimg.a} |
|
|
|
|
dans un emplacement approprié, par exemple |
|
|
|
|
\texttt{/usr/local/include} et \texttt{/usr/local/lib}. |
|
|
|
|
|
|
|
|
|
\vspace{1em} |
|
|
|
|
|
|
|
|
|
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}. |
|
|
|
|
|
|
|
|
|
% ------------------------------------------------------------------- |
|
|
|
|
\section{Utilisation coté codeur}\label{codaz} |
|
|
|
|
|
|
|
|
|
Classiquement, il y a un fichier à inclure, \texttt{floatimg.h}, |
|
|
|
|
contenant un certain nombre de |
|
|
|
|
définition de structures, de macros, |
|
|
|
|
Classiquement, il y a un fichier à 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, |
|
|
|
|
de constantes\footnote{À l'ancienne, via le pré-processur} |
|
|
|
|
et les prototypes des fonctions utilisables. |
|
|
|
|
et les prototypes des fonctions utilisables par vos logiciels. |
|
|
|
|
\vspace{1em} |
|
|
|
|
|
|
|
|
|
Au niveau du code source, ces fonctions sont approximativement |
|
|
|
@ -201,7 +206,7 @@ est en fait arbitraire. |
|
|
|
|
|
|
|
|
|
Les pixels flottants d'une image résidant en mémoire centrale |
|
|
|
|
sont décrits par un ensemble |
|
|
|
|
de données (certains appelent ça des \textsl{metadats}) regroupées |
|
|
|
|
de données (certains appelent ça des \textsl{metadatas}) regroupées |
|
|
|
|
dans une jolie structure que nous allons examiner dès maintenant. |
|
|
|
|
|
|
|
|
|
\begin{verbatim} |
|
|
|
@ -230,26 +235,33 @@ gris, rgb et rgba\index{rgba}. |
|
|
|
|
|
|
|
|
|
Un peu plus loin, nous avons les pointeurs vers les |
|
|
|
|
différents \textsl{pixmaps} de l'image. En principe l'organisation |
|
|
|
|
interne de ces zones est improbable, puisque qu'elle dérive |
|
|
|
|
interne de ces zones est improbable, puisque elle dérive |
|
|
|
|
d'idées approximatives. |
|
|
|
|
|
|
|
|
|
\vspace{1em} |
|
|
|
|
|
|
|
|
|
Les deux champs suivants (fval et count) sont à la disposition du |
|
|
|
|
\textsl{yuser} |
|
|
|
|
qui peut jouer avec à loisir pour faire, par exemple, ce genre de |
|
|
|
|
chose. Imaginons un périphérique de capture qui nous fournisse des |
|
|
|
|
chose : imaginons un périphérique de capture qui nous fournisse des |
|
|
|
|
images en gris sur 4 bits. Et que nous voulions cumuler\index{cumul} |
|
|
|
|
quelques images... |
|
|
|
|
|
|
|
|
|
\vspace{1em} |
|
|
|
|
|
|
|
|
|
Le champ \textsl{count} sera mis à 0 et |
|
|
|
|
le champ \textsl{fval} sera initialisé à 15.0 |
|
|
|
|
(valeur maximale renvoyée par le capteur). |
|
|
|
|
(qui est la valeur maximale que peut renvoyer 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écessaires pour exploiter au mieux la dynamique |
|
|
|
|
de notre image dans les étapes ultérieures. |
|
|
|
|
de notre image dans les étapes ultérieures, puisque la valeur |
|
|
|
|
maximale théorique est égale à $fval * count$. |
|
|
|
|
|
|
|
|
|
\vspace{1em} |
|
|
|
|
|
|
|
|
|
\textsl{Il est vraiment dommage que ces deux données auxiliaires |
|
|
|
|
ne puisse être stockée dans les dumps d'image. \index{XXX}} |
|
|
|
|
|
|
|
|
|
\subsection{lib/}\index{lib/} |
|
|
|
|
|
|
|
|
@ -422,7 +434,7 @@ 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}. |
|
|
|
|
Il faut peut-être envisager le passage à \texttt{libpng}\index{libpng}. |
|
|
|
|
|
|
|
|
|
\subsection{fimgstats}\index{fimgstats}\label{fimgstats} |
|
|
|
|
|
|
|
|
@ -452,7 +464,8 @@ sur les arguments de la ligne de commande. coredump expected.} |
|
|
|
|
\vspace{1em} |
|
|
|
|
|
|
|
|
|
À l'heure actuelle\footnote{décembre 2019, vers 15:30}, nous avons |
|
|
|
|
déja quelques ajustements basiques de contraste. |
|
|
|
|
déja quelques ajustements basiques de contraste, qui ne tiennent |
|
|
|
|
pas vraiment compte du contenu de l'image. |
|
|
|
|
|
|
|
|
|
\begin{verbatim} |
|
|
|
|
tth@daubian:~/Devel/FloatImg/tools$ ./fimgfx -v -h |
|
|
|
@ -494,6 +507,7 @@ La véracité mathématique n'est pas garantie. |
|
|
|
|
Quelques petits proggies pour exporter notre format\index{.fimg} secret |
|
|
|
|
vers des choses plus directement utilisables. À condition que le |
|
|
|
|
code soit écrit et documenté. Peut-être en page \pageref{funcs}\dots |
|
|
|
|
\vspace{1em} |
|
|
|
|
|
|
|
|
|
D'un autre coté, écrire un greffon d'import/export pour |
|
|
|
|
Gimp\index{Gimp} ou Imagemagick\index{Imagemagick} |
|
|
|
|