more doc...

This commit is contained in:
tth 2020-07-22 16:10:42 +02:00
parent d4d2dcc7f5
commit 7eee0bd4d9

View File

@ -120,11 +120,12 @@ quelques milliers d'images standard à 256 niveaux, sans trop avoir
\subsection{Dynamique}\index{dynamique} \subsection{Dynamique}\index{dynamique}
Dynamique, précision et macheps. Dynamique, précision et \textsl{macheps} ?
\subsection{Pixel négatif ?} \subsection{Pixel négatif ?}
Il est très difficle d'imaginer une lumière négative. Il est très difficle d'imaginer une lumière négative. Sauf peut-être
si nous songeons à des coefficients d'absorption ?
% ------------------------------------------------------------------- % -------------------------------------------------------------------
@ -370,6 +371,7 @@ C'est bien beau d'être enfin résident en mémoire centrale, mais
pouvoir aussi exister à long terme en étant stocké dans la matrice pouvoir aussi exister à long terme en étant stocké dans la matrice
est tout aussi pertinent. Il y a deux opérations qui supportent le est tout aussi pertinent. Il y a deux opérations qui supportent le
reste des transits ram/ps. reste des transits ram/ps.
Le format des fichiers est décrit page \pageref{formatfimg}.
\begin{lstlisting} \begin{lstlisting}
int fimg_dump_to_file(FloatImg *fimg, char *fname, int notused); int fimg_dump_to_file(FloatImg *fimg, char *fname, int notused);
@ -403,7 +405,7 @@ foo = fimg_create_from_dump("lena.fimg", &head);
Si la valeur retournée est différente de 0, c'est que quelque Si la valeur retournée est différente de 0, c'est que quelque
chose s'est mal passé. chose s'est mal passé.
Certains messages sont parfois parfois explicites. Certains messages sont parfois explicites.
% _________ % _________
@ -430,6 +432,9 @@ 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 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
superbement ignoré.
% ---------------------------------- % ----------------------------------
\subsection{Contraste}\index{contraste}\label{contraste} \subsection{Contraste}\index{contraste}\label{contraste}
@ -463,7 +468,6 @@ 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}.
\begin{figure}[h] \begin{figure}[h]
\input{cos010.tex} % XXX XXX XXX \input{cos010.tex} % XXX XXX XXX
\caption{Correcteur cos010} \caption{Correcteur cos010}
@ -500,7 +504,7 @@ qui permet un contrôle bien plus fin des dérives.
La prochaine étape consistera à trouver une façon de faire La prochaine étape consistera à trouver une façon de faire
une égalisation\index{égalisation} par histogramme\index{histogramme} une égalisation\index{égalisation} par histogramme\index{histogramme}
qui respecte, dans toute sa futilité, le concept\index{concept} qui respecte, dans toute sa futilité, le concept\index{concept}
de pixel flottant. de pixel flottant. \textsl{Et c'est pas gagné...}
% ---------------------------------- % ----------------------------------
@ -537,6 +541,25 @@ ne semblent pas d'accord.} d'une image RGB.
L'image de destination peut être soit vierge, soit pré-allouée L'image de destination peut être soit vierge, soit pré-allouée
aux bonnes dimensions (échange W et H). aux bonnes dimensions (échange W et H).
% ----------------------------------
\subsection{Format du fichier \textsc{fimg}}\index{format}\label{formatfimg}
D'un design très empirique, c'est certainement à revoir pour l'avenir.
Tout d'abord pour normaliser l'endianess et le packing\dots
\begin{lstlisting}
typedef struct {
char magic[8];
int w, h, t;
} FimgFileHead;
\end{lstlisting}
\dots Mais aussi pour faciliter l'ajout de métadonnées, telles que
la valeur maximale, la date de création, une longueur d'onde,
et bien plus encore.
% ---------------------------------- % ----------------------------------
\subsection{Exportation \& Importation}\index{export}\label{export} \subsection{Exportation \& Importation}\index{export}\label{export}
@ -603,7 +626,7 @@ To be done\index{XXX}
\subsubsection{Vers FITS}\index{FITS} \subsubsection{Vers FITS}\index{FITS}
Ce format est essentiellement utilisé pour stocker des images Ce format est essentiellement utilisé pour stocker des images
d'astronomie. d'astronomie, donc il peut aussi servir pour des images floues.
To be done\index{XXX} To be done\index{XXX}
@ -622,21 +645,24 @@ int parse_double(char *str, double *dptr)
La fonction \texttt{int format\_from\_extension(char *fname)} examine un La fonction \texttt{int format\_from\_extension(char *fname)} examine un
nom defichier tel que \texttt{lena.xxx}, et retourne, si la partie nom de fichier tel que \texttt{lena.xxx}, et retourne, si la partie
\texttt{xxx} un éventuel nombre positif, dont les valeurs sont dans floatimg.h \texttt{xxx} est connue, un éventuel nombre positif, dont les valeurs sont
déclarées dans floatimg.h
le valeureux. le valeureux.
Les extensions actuellement connues sont : fimg, png, pnm et tiff. Les extensions actuellement connues sont : fimg, png, pnm, fits et tiff.
To be continued\index{XXX}\dots To be continued\index{XXX}\dots
\subsection{Effets}\index{sfx} \subsection{Effets}\index{sfx}
Quelques routines qui servent futilement à \textsl{brotcher} les images. Quelques routines qui servent futilement à \textsl{brotcher} les images
en tripotant les flux visuels chromatiques.
\begin{lstlisting} \begin{lstlisting}
int fimg_killcolors_a(FloatImg *fimg, float fval); int fimg_killcolors_a(FloatImg *fimg, float fval);
int fimg_killcolors_b(FloatImg *fimg, float fval); int fimg_killcolors_b(FloatImg *fimg, float fval);
int fimg_colors_mixer_a(FloatImg *fimg, float fval);
\end{lstlisting} \end{lstlisting}
@ -875,10 +901,11 @@ de qualitay.
% ------------------------- % -------------------------
\subsection{fimg2png, fimg2pnm, fimg2tiff} \subsection{fimg2png, fimg2pnm, fimg2tiff, fimg2fits}
\index{fimg2png}\label{fimg2png} \index{fimg2png}\label{fimg2png}
\index{fimg2pnm}\label{fimg2pnm} \index{fimg2pnm}\label{fimg2pnm}
\index{fimg2tiff}\label{fimg2tiff} \index{fimg2tiff}\label{fimg2tiff}
\index{fimg2fits}\label{fimg2fits}
Quelques petits proggies pour exporter notre format\index{.fimg} secret Quelques petits proggies pour exporter notre format\index{.fimg} secret
vers des choses plus directement utilisables. À condition que le vers des choses plus directement utilisables. À condition que le
@ -888,7 +915,7 @@ D'un autre coté, écrire un greffon d'import/export pour
Gimp\index{Gimp} ou ImageMagick\index{ImageMagick} ou Krita\index{krita} Gimp\index{Gimp} ou ImageMagick\index{ImageMagick} ou Krita\index{krita}
ne devrait pas être trop difficile. Des volontaires ? ne devrait pas être trop difficile. Des volontaires ?
\textsl{D'ailleurs, pourquoi $n$ logiciels indépendants alors q'un \textsl{D'ailleurs, pourquoi $N$ logiciels indépendants alors q'un
seul devrait être nécessaire ?} seul devrait être nécessaire ?}
\subsection{fimg2gray}\index{fimg2gray}\label{fimg2gray} \subsection{fimg2gray}\index{fimg2gray}\label{fimg2gray}
@ -915,6 +942,7 @@ choses seront acquises.
\item Compléter les traitements mathémathiques (eg le gamma\index{gamma}). \item Compléter les traitements mathémathiques (eg le gamma\index{gamma}).
\item Formaliser les codes d'erreur. \textbf{Urgent}. \item Formaliser les codes d'erreur. \textbf{Urgent}.
\item Faire une passe complète de Valgrind\index{valgrind}. \item Faire une passe complète de Valgrind\index{valgrind}.
\item Integrer la fonderie et l'interpolator.
\end{itemize} \end{itemize}
% ------------------------------------------------------------------- % -------------------------------------------------------------------
@ -958,7 +986,9 @@ encore un peu rudimentaire
vers le programme de capture d'image décrit page \pageref{grabvidseq}. vers le programme de capture d'image décrit page \pageref{grabvidseq}.
Il utilise deux fichiers dans le répertoire de travail~: Il utilise deux fichiers dans le répertoire de travail~:
\textit{reglages} et \textit{compteur}. Le premier est, en fait, \textit{reglages} et \textit{compteur}. Le premier est, en fait,
un bout de shell affectant quelques variables, ou plutôt, les surchargant. un bout de shell affectant quelques variables, ou plutôt, les surchargeant.
Voici un exemple de réglage~:
\begin{lstlisting} \begin{lstlisting}
OPTIONS="${OPTIONS} -v -c pow2 " OPTIONS="${OPTIONS} -v -c pow2 "
@ -1100,7 +1130,8 @@ Donc, maintenant, nous savons un peu tripoter ces images flottantes.
Et nous devons nous poser une question fondamentale\footnote{primitive ?} Et nous devons nous poser une question fondamentale\footnote{primitive ?}
sur la provenance de ces données prétendant être des images. sur la provenance de ces données prétendant être des images.
En fait, notre désir secret est la découverte des choses cachées du En fait, notre désir secret (enfin, surtout le mien)
est la découverte des choses cachées du
monde qui nous entoure. Nous voulons des images du \textbf{réel} et monde qui nous entoure. Nous voulons des images du \textbf{réel} et
pour cela, l'outil le plus commun, le plus répandu, pour cela, l'outil le plus commun, le plus répandu,
est la webcam\index{webcam}. L'universelle webcam. Et l'incontournable est la webcam\index{webcam}. L'universelle webcam. Et l'incontournable
@ -1124,6 +1155,7 @@ options :
-O ./ set Output dir -O ./ set Output dir
-o bla set output filename -o bla set output filename
-p NN.N delay between frames -p NN.N delay between frames
-r 90 mode portrait
-s WxH size of capture -s WxH size of capture
-u try upscaling... -u try upscaling...
-v increase verbosity -v increase verbosity