forked from tTh/FloatImg
need proff reading
This commit is contained in:
parent
a5cd02a261
commit
4b2d2c264f
@ -26,7 +26,7 @@
|
|||||||
\usepackage{xspace}
|
\usepackage{xspace}
|
||||||
\usepackage[verbose]{layout}
|
\usepackage[verbose]{layout}
|
||||||
|
|
||||||
\setlength \parskip {0.333em}
|
\setlength \parskip {0.35em}
|
||||||
|
|
||||||
\makeatletter
|
\makeatletter
|
||||||
% exlpication de ce truc ?
|
% exlpication de ce truc ?
|
||||||
@ -204,19 +204,22 @@ lesquels sont décrits en page \pageref{outils}.
|
|||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{Installation}
|
\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}
|
\textit{Attention, ça devient un peu gore. Myrys, punk, toussa\dots}
|
||||||
|
|
||||||
\subsection{Prérequis}
|
\subsection{Prérequis}
|
||||||
|
|
||||||
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 Debian et dérivées}~:
|
en plus pour Debian et dérivées}~:
|
||||||
\textsf{
|
\textsf{
|
||||||
libv4l2, libpnglite, libtiff,
|
libv4l2, libpnglite, libtiff,
|
||||||
libnetpbm\footnote{package libnetpbm10-dev},
|
libnetpbm\footnote{package libnetpbm10-dev},
|
||||||
libz\footnote{package zlib1g-dev}, libcurses,
|
libz\footnote{package zlib1g-dev}, libcurses,
|
||||||
libcfitsio-dev
|
libcfitsio-dev
|
||||||
} % en of textsf
|
} % end of textsf
|
||||||
éventuellement avec le \textsf{-dev} correspondant,
|
éventuellement avec le \textsf{-dev} correspondant,
|
||||||
et probablement d'autres choses.
|
et probablement d'autres choses.
|
||||||
|
|
||||||
@ -293,7 +296,8 @@ typedef struct {
|
|||||||
\end{lstlisting}\index{FloatImg}
|
\end{lstlisting}\index{FloatImg}
|
||||||
|
|
||||||
Les deux premiers champs sont \textsl{obvious}.
|
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} :
|
qui sont définis\footnote{et plus ou moins bien gérés\dots} :
|
||||||
gris, rgb et rgba\index{rgba}.
|
gris, rgb et rgba\index{rgba}.
|
||||||
Les constantes adéquates sont dans \texttt{floatimg.h}
|
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}
|
\textsl{yuser}
|
||||||
qui peut jouer avec à loisir pour faire, par exemple, ce genre de
|
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}
|
images en gris sur 4 bits (et linéaire).
|
||||||
|
Et que nous voulions cumuler\index{cumul}
|
||||||
quelques images...
|
quelques images...
|
||||||
|
|
||||||
Le champ \textsl{count} sera mis à 0 et
|
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.
|
$x$ et $y$ de la demande.
|
||||||
|
|
||||||
Quand au canal \textsl{alpha}\index{alpha}, il est pour le moment
|
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}
|
\subsection{Contraste}\index{contraste}\label{contraste}
|
||||||
|
|
||||||
Certaines opérations d'ajustement du contraste d'une image
|
Certaines opérations d'ajustement du contraste d'une image
|
||||||
semblent cohérents avec la notion d'image flottante.
|
semblent cohérentes avec la notion d'image flottante.
|
||||||
Certains d'entre eux, les plus simples, sont disponibles.
|
Certaines d'entre elles, les plus simples, sont disponibles.
|
||||||
Les autres sont à imaginer.
|
Les autres sont à imaginer.
|
||||||
|
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
@ -453,8 +460,9 @@ Les autres sont à imaginer.
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Ils prennent chacun trois paramètres, d'abord les images
|
Ils prennent chacun trois paramètres, d'abord les images
|
||||||
source et destination (\texttt{* FloatImg}), et le troisième
|
source et destination (\texttt{* FloatImg}),
|
||||||
est un nombre en double précision donnant la valeur
|
ensuite le troisième
|
||||||
|
qui est un nombre en double précision donnant la valeur
|
||||||
maximale \textsl{supposée} de l'image source,
|
maximale \textsl{supposée} de l'image source,
|
||||||
valeur qui peut être déterminée de plusieurs manières.
|
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
|
Si vous souhaitez rajouter votre propre méthode de modification
|
||||||
de contraste, il y a quelques explication en page \pageref{exemplefunc}.
|
de contraste, il y a quelques explication en page \pageref{exemplefunc}.
|
||||||
|
Mais rien ne vous oblige à le faire.
|
||||||
|
|
||||||
|
|
||||||
\begin{figure}[h]
|
\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}
|
\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.
|
mais on a quand même une bonne compression, ça compense.
|
||||||
J'utilise \textsl{libpnglite} avec qui j'ai un peu de mal à suivre.
|
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.
|
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.
|
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
|
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
|
de gérer une foultitude de formats numériques. C'est aussi un format
|
||||||
classique proposé par les gros scanners corporates.
|
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}
|
\subsubsection{Vers FITS}\index{FITS}
|
||||||
|
|
||||||
@ -769,10 +784,10 @@ return 0;
|
|||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Je vous laisse imaginer les dégats que peut faire cette
|
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.
|
d'essayer par vous-même.
|
||||||
En particulier tout le reste du code qui suppose qu'un pixel
|
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
|
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 cohérence sur les dimensions des deux images, malgré l'existence
|
||||||
de fonctions prévues à cet effet..
|
de fonctions prévues à cet effet..
|
||||||
@ -1129,7 +1144,7 @@ done
|
|||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Et en fin de boucle, nous convertissons le résultat de nos
|
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.
|
de destination fixé au début.
|
||||||
C'est le moment de passer la main à ffmpeg\index{ffmpeg}.
|
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
|
L'option \texttt{-s} doit correspondre à une des
|
||||||
résolutions possibles de votre capteur. Le type du
|
résolutions possibles de votre capteur. Le type du
|
||||||
fichier en sortie (option \texttt{-o}) est déterminé par
|
fichier en sortie (option \texttt{-o}) est déterminé par
|
||||||
l'extension, actuellement
|
l'extension du nom.
|
||||||
seulement \texttt{.fimg}, \texttt{.pnm} et \texttt{.png}
|
Actuellement
|
||||||
|
seulement \texttt{.fimg}, \texttt{.pnm}, \texttt{.fits},
|
||||||
|
\texttt{.tiff} et \texttt{.png}
|
||||||
sont reconnus.
|
sont reconnus.
|
||||||
|
|
||||||
La conversion en gris (option \texttt{-g}) mérite un
|
La conversion en gris (option \texttt{-g}) mérite un
|
||||||
@ -1256,9 +1273,25 @@ de \textsl{Brunus} pour avancer...
|
|||||||
|
|
||||||
\subsection{Gimp}\index{Gimp}
|
\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.
|
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}
|
\subsection{Et encore ?}\index{krita}\index{geeqie}
|
||||||
|
|
||||||
Il y a d'autres logiciels pour lesquels écrire une fonction d'importation
|
Il y a d'autres logiciels pour lesquels écrire une fonction d'importation
|
||||||
|
Loading…
Reference in New Issue
Block a user