forked from tTh/FloatImg
commit du soir, espoir
This commit is contained in:
parent
33daa84530
commit
37ee68278b
|
@ -23,8 +23,7 @@ doc/*.pdf
|
|||
doc/*.idx
|
||||
doc/*.ilg
|
||||
doc/*.ind
|
||||
doc/foo.tex
|
||||
|
||||
doc/co*.tex
|
||||
funcs/t
|
||||
funcs/*.o
|
||||
funcs/*.png
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
\usepackage{listings}
|
||||
\usepackage{babel}
|
||||
|
||||
\usepackage{graphicx} % for gnuplot ylabel rotate
|
||||
|
||||
\usepackage{pifont} % caractères rigolos
|
||||
\usepackage{enumitem}
|
||||
\setitemize[1]{label={\ding{87}}}
|
||||
|
@ -214,6 +216,13 @@ faciliter un peu la chose. Il prend également en compte la copie
|
|||
des divers binaires du dossier \texttt{tools/} (cf. page \pageref{outils})
|
||||
dans le répertoire prévu à cet effet : \texttt{/usr/local/bin}.
|
||||
|
||||
Il reste enfin quelques exemples d'utilisation des outils de la
|
||||
ligne de commande depuis un shell
|
||||
dans le répertoire \texttt{scripts/}.
|
||||
Ils sont décrits plus en détail page
|
||||
\pageref{scripts}, et c'est à vous de les adapter à votre \textsl{usecase}.
|
||||
Faites-en ce que vous voulez.
|
||||
|
||||
% =================================================================
|
||||
|
||||
\section{Utilisation coté codeur}\label{codaz}
|
||||
|
@ -334,7 +343,7 @@ Si tout s'est bien passé (valeur retournée égale à 0),
|
|||
on va trouver la largeur dans \texttt{datas[0]},
|
||||
la hauteur dans \texttt{datas[1]} et le type dans
|
||||
\texttt{datas[2]}\footnote{La fonction
|
||||
\texttt{fimg\_type\_is\_valid(int type)} peut vous aider}.
|
||||
\texttt{fimg\_type\_is\_valid(int type)} peut vous aider\dots}.
|
||||
|
||||
Je sais aussi que certains d'entre vous aiment la facilité, aussi
|
||||
je vais vous révéler l'existence d'un nouveau truc bien plus
|
||||
|
@ -348,6 +357,9 @@ memset(&head, 0, sizeof(FloatImg));
|
|||
foo = fimg_create_from_dump("lena.fimg", &head);
|
||||
\end{verbatim}
|
||||
|
||||
Si la valeur retournée est différente de 0, c'est que quelque
|
||||
chose s'est mal passé.
|
||||
Certains messages sont parfois parfois explicites.
|
||||
|
||||
% _________
|
||||
|
||||
|
@ -358,8 +370,7 @@ Bon, vous avez une image latente, et vous souhaitez dessiner dessus
|
|||
Il y a des fonctions pour ça, par exemple~:
|
||||
|
||||
\begin{verbatim}
|
||||
int fimg_plot_rgb (FloatImg *head, int x, int y,
|
||||
float r, float g, float b);
|
||||
int fimg_plot_rgb(FloatImg *head, int x, int y, float r, float g, float b);
|
||||
\end{verbatim}
|
||||
|
||||
Les paramètres sont explicites, mais leur validité doit être
|
||||
|
@ -369,6 +380,11 @@ qui ajoute du rgb à un pixel, laquelle fonction a d'ailleurs été
|
|||
à la base de la seconde génération de la
|
||||
photographie\index{photographie} en cumul\index{cumul}.
|
||||
|
||||
Inversement, la fonction
|
||||
\texttt{fimg\_get\_rgb(FloatImg *head, int x, int y, float *rgb)}
|
||||
permet de lire les valeurs des trois canaux d'un pixel donné.
|
||||
Là aussi, il n'y a aucun contrôle sur la validité des valeurs
|
||||
$x$ et $y$ de la demande.
|
||||
|
||||
% ----------------------------------
|
||||
|
||||
|
@ -379,6 +395,11 @@ semblent cohérents avec la notion d'image flottante.
|
|||
Certains d'entre eux, les plus simples, sont disponibles.
|
||||
Les autres sont à imaginer.
|
||||
|
||||
\begin{figure}
|
||||
\input{cos01.tex} % XXX XXX XXX
|
||||
\caption{Correcteur cos01}
|
||||
\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
|
||||
|
@ -393,9 +414,15 @@ int fimg_cos_01(FloatImg *s, FloatImg *d, double maxval);
|
|||
int fimg_cos_010(FloatImg *s, FloatImg *d, double maxval);
|
||||
\end{verbatim}
|
||||
|
||||
|
||||
Si vous souhaitez rajouter votre propre méthode de modification
|
||||
de contraste, il y a quelques explication en page \pageref{exemplefunc}.
|
||||
|
||||
|
||||
|
||||
\begin{figure}
|
||||
\input{foo.tex} % XXX XXX XXX
|
||||
\caption{Correcteur cos01}
|
||||
\input{cos010.tex} % XXX XXX XXX
|
||||
\caption{Correcteur cos010}
|
||||
\end{figure}
|
||||
|
||||
Rappelons qu'il est possible pour un logiciel applicatif
|
||||
|
@ -461,7 +488,9 @@ dans ce domaine\dots
|
|||
|
||||
\subsubsection{Vers PNM}\index{PNM}
|
||||
|
||||
Nous avons ici 16 bits par composante, mais au prix
|
||||
Nous avons ici 16 bits par composante, soit 65536 valeurs différentes,
|
||||
ce qui est bien au-delà de ce que peuvent percevoir vos yeux.
|
||||
Hélas, c'est au prix
|
||||
d'une taille énorme sur les fichiers. D'un autre coté,
|
||||
l'utilisation du codage \textsc{ascii}\index{ascii}
|
||||
(alors qu'on pourrait mettre du binaire, plus compact) y est
|
||||
|
@ -494,12 +523,13 @@ Mais je me soigne. Le mode 16 bits va bientôt arriver.
|
|||
int fimg_save_as_png(FloatImg *src, char *outname, int flags);
|
||||
\end{verbatim}
|
||||
|
||||
Tous les flags doivent être à zéro.
|
||||
|
||||
\subsubsection{Vers TIFF}\index{TIFF}
|
||||
\subsubsection{Vers/depuis 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 scanners corporates.
|
||||
classique proposé par les gros scanners corporates.
|
||||
|
||||
To be done\index{XXX}
|
||||
|
||||
|
@ -553,7 +583,7 @@ des bords d'image.
|
|||
|
||||
% ----------------------------------
|
||||
|
||||
\subsection{Exemple de fonction}\index{exemple}
|
||||
\subsection{Exemple de fonction}\index{exemple}\label{exemplefunc}
|
||||
|
||||
Nous allons maintenant écrire une fonction intégrable dans
|
||||
le répertoire \texttt{funcs/}.
|
||||
|
@ -759,7 +789,10 @@ de méthodes, toutes plus légitimes que les autres.
|
|||
% -------------------------------------------------------------------
|
||||
\section{TODO}\index{TODO}\label{TODO}
|
||||
|
||||
Il reste plein de choses à faire pour que ce soit vraiment utilisable.
|
||||
Il reste plein de choses à faire pour que ce soit vraiment utilisable,
|
||||
surtout dans un contexte artistique à grande porosité.
|
||||
C'est par ces frottements de techniques ayant du sens que les
|
||||
choses seront acquises.
|
||||
|
||||
\begin{itemize}
|
||||
\item Import/export au format \textsc{tiff}\index{tiff}.
|
||||
|
@ -767,6 +800,7 @@ Il reste plein de choses à faire pour que ce soit vraiment utilisable.
|
|||
\textsl{[en cours]}.
|
||||
\item Compléter les traitements mathémathiques (eg le gamma\index{gamma}).
|
||||
\item Formaliser les codes d'erreur. \textbf{Urgent}.
|
||||
\item Faire une passe complète de Valgrind\index{valgrind}.
|
||||
\end{itemize}
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
|
@ -841,6 +875,10 @@ de films flous\index{film} à partir de photos floues.
|
|||
Le script \texttt{scripts/echomix.sh} est une première expérimentation
|
||||
en bash, utilisant deux outils en \textsc{cli}.
|
||||
|
||||
C'est juste une POC\index{POC}, et une implémentation bien plus
|
||||
complète écrite en \textbf{C}\index{C} est déja en chantier,
|
||||
avec une complexité prévue à un niveau assez réjouissant.
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
\section{Video for Linux}\index{v4l2}
|
||||
|
||||
|
|
Loading…
Reference in New Issue