Browse Source

need proff reading

master
tth 2 years ago
parent
commit
4b2d2c264f
  1. 71
      doc/the_floatimg_hack.tex

71
doc/the_floatimg_hack.tex

@ -26,7 +26,7 @@ @@ -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}. @@ -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 { @@ -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 @@ -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 @@ -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. @@ -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); @@ -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. @@ -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); @@ -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; @@ -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 @@ -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. @@ -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... @@ -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

Loading…
Cancel
Save