From 4b2d2c264f059c08016e3b94544d8da047401b07 Mon Sep 17 00:00:00 2001 From: tth Date: Thu, 3 Sep 2020 01:35:54 +0200 Subject: [PATCH] need proff reading --- doc/the_floatimg_hack.tex | 71 ++++++++++++++++++++++++++++----------- 1 file changed, 52 insertions(+), 19 deletions(-) diff --git a/doc/the_floatimg_hack.tex b/doc/the_floatimg_hack.tex index 1cb85b7..2b5efd6 100644 --- a/doc/the_floatimg_hack.tex +++ b/doc/the_floatimg_hack.tex @@ -26,7 +26,7 @@ \usepackage{xspace} \usepackage[verbose]{layout} -\setlength \parskip {0.333em} +\setlength \parskip {0.35em} \makeatletter % exlpication de ce truc ? @@ -204,19 +204,22 @@ lesquels sont décrits en page \pageref{outils}. % ------------------------------------------------------------------- \section{Installation} +Sauf indications contraires, ces instructions se réfèrent à +une distribution Debian\index{Debian} récente. + \textit{Attention, ça devient un peu gore. Myrys, punk, toussa\dots} \subsection{Prérequis} Vous devez, en dehors des outils classiques (bash, gcc, make\dots), avoir quelques bibliothèques installées\footnote{Les \texttt{-dev} -pour Debian et dérivées}~: +en plus pour Debian et dérivées}~: \textsf{ libv4l2, libpnglite, libtiff, libnetpbm\footnote{package libnetpbm10-dev}, libz\footnote{package zlib1g-dev}, libcurses, libcfitsio-dev -} % en of textsf +} % end of textsf éventuellement avec le \textsf{-dev} correspondant, et probablement d'autres choses. @@ -293,7 +296,8 @@ typedef struct { \end{lstlisting}\index{FloatImg} Les deux premiers champs sont \textsl{obvious}. -Le troisième est le type d'image : pour le moment, il y en a trois +Le troisième est le type d'image : pour le moment, il y en a % trois +un certain nombre qui sont définis\footnote{et plus ou moins bien gérés\dots} : gris, rgb et rgba\index{rgba}. Les constantes adéquates sont dans \texttt{floatimg.h} @@ -317,7 +321,8 @@ 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 -images en gris sur 4 bits. Et que nous voulions cumuler\index{cumul} +images en gris sur 4 bits (et linéaire). +Et que nous voulions cumuler\index{cumul} quelques images... Le champ \textsl{count} sera mis à 0 et @@ -436,15 +441,17 @@ Là aussi, il n'y a aucun contrôle sur la validité des valeurs $x$ et $y$ de la demande. Quand au canal \textsl{alpha}\index{alpha}, il est pour le moment -superbement ignoré. +superbement ignoré. Ceci dit, on vient de me faire remarquer qu'il +peut être utilisable aussi pour faire du +\textsl{z-buffer}\index{z-buffer} \dots % ---------------------------------- \subsection{Contraste}\index{contraste}\label{contraste} Certaines opérations d'ajustement du contraste d'une image -semblent cohérents avec la notion d'image flottante. -Certains d'entre eux, les plus simples, sont disponibles. +semblent cohérentes avec la notion d'image flottante. +Certaines d'entre elles, les plus simples, sont disponibles. Les autres sont à imaginer. \begin{figure}[h] @@ -453,8 +460,9 @@ Les autres sont à imaginer. \end{figure} Ils prennent chacun trois paramètres, d'abord les images -source et destination (\texttt{* FloatImg}), et le troisième -est un nombre en double précision donnant la valeur +source et destination (\texttt{* FloatImg}), +ensuite le troisième +qui est un nombre en double précision donnant la valeur maximale \textsl{supposée} de l'image source, valeur qui peut être déterminée de plusieurs manières. @@ -469,6 +477,7 @@ int fimg_cos_010(FloatImg *s, FloatImg *d, double maxval); Si vous souhaitez rajouter votre propre méthode de modification de contraste, il y a quelques explication en page \pageref{exemplefunc}. +Mais rien ne vous oblige à le faire. \begin{figure}[h] @@ -606,7 +615,8 @@ Les autres bits ne sont pas utilisés et doivent être à zéro. \subsubsection{Vers PNG}\index{PNG} -Actuellement, on peut enregistrer uniquement en mode RGB, 8 bits par composante, +Actuellement, on peut enregistrer uniquement en mode RGB, +8 bits par composante, mais on a quand même une bonne compression, ça compense. J'utilise \textsl{libpnglite} avec qui j'ai un peu de mal à suivre. Mais je me soigne. Le mode 16 bits va bientôt arriver. @@ -618,13 +628,18 @@ int fimg_save_as_png(FloatImg *src, char *outname, int flags); Tous les flags doivent être à zéro. Sinon, ça foire parfois. -\subsubsection{Vers/depuis TIFF}\index{TIFF} +\subsubsection{Vers TIFF}\index{TIFF} Le format canonique de la PAO\index{PAO} du siècle dernier. Il permet de gérer une foultitude de formats numériques. C'est aussi un format classique proposé par les gros scanners corporates. -To be done\index{XXX} +\begin{lstlisting} +int fimg_write_as_png(FloatImg *src, char *outname, int flags); +\end{lstlisting} + +Tous les flags doivent être à zéro. + \subsubsection{Vers FITS}\index{FITS} @@ -769,10 +784,10 @@ return 0; \end{lstlisting} Je vous laisse imaginer les dégats que peut faire cette -fontion en utilisation réelle. Mieux, je vous propose +fonction en utilisation réelle. Mieux, je vous propose d'essayer par vous-même. En particulier tout le reste du code qui suppose qu'un pixel -ne peut \textbf{pas} être négatif. +ne peut \textbf{pas} être négatif va peut-être exploser de rire. Vous pouvez aussi remarquer qu'il n'y a pas de controle de cohérence sur les dimensions des deux images, malgré l'existence de fonctions prévues à cet effet.. @@ -1129,7 +1144,7 @@ done \end{verbatim} Et en fin de boucle, nous convertissons le résultat de nos -savants au format PNG, et écrivons le fichier dans le répertoire +savants calculs au format PNG, et écrivons le fichier dans le répertoire de destination fixé au début. C'est le moment de passer la main à ffmpeg\index{ffmpeg}. @@ -1180,8 +1195,10 @@ La plupart de ces options ont un usage quasi-évident. L'option \texttt{-s} doit correspondre à une des résolutions possibles de votre capteur. Le type du fichier en sortie (option \texttt{-o}) est déterminé par -l'extension, actuellement -seulement \texttt{.fimg}, \texttt{.pnm} et \texttt{.png} +l'extension du nom. +Actuellement +seulement \texttt{.fimg}, \texttt{.pnm}, \texttt{.fits}, +\texttt{.tiff} et \texttt{.png} sont reconnus. La conversion en gris (option \texttt{-g}) mérite un @@ -1256,9 +1273,25 @@ de \textsl{Brunus} pour avancer... \subsection{Gimp}\index{Gimp} -Mmmmm... Ça semble un peu plus compliqué. D'un autre coté, il +Mmmmm... Ça semble un peu plus compliqué. +La documentation à ce sujet me semble ésotérique. +D'un autre coté, il faut faire ça en \textbf{C}, ce qui ne peut être négatif. +\subsection{ffmpeg}\index{ffmpeg} + +Un petit aide-mémoire pour encoder vos superbes +timelapses\index{timelapse} : + +\begin{lstlisting} +ffmpeg -nostdin \ + -y -r 30 -f image2 -i stereo/S%04d.png \ + -c:v libx264 \ + -pix_fmt yuv420p \ + -tune film \ + stereo.mp4 +\end{lstlisting} + \subsection{Et encore ?}\index{krita}\index{geeqie} Il y a d'autres logiciels pour lesquels écrire une fonction d'importation