diff --git a/doc/the_floatimg_hack.tex b/doc/the_floatimg_hack.tex index 69ccd08..4e82ad4 100644 --- a/doc/the_floatimg_hack.tex +++ b/doc/the_floatimg_hack.tex @@ -120,11 +120,12 @@ quelques milliers d'images standard à 256 niveaux, sans trop avoir \subsection{Dynamique}\index{dynamique} -Dynamique, précision et macheps. +Dynamique, précision et \textsl{macheps} ? \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 est tout aussi pertinent. Il y a deux opérations qui supportent le reste des transits ram/ps. +Le format des fichiers est décrit page \pageref{formatfimg}. \begin{lstlisting} 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 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 $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} @@ -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}. - \begin{figure}[h] \input{cos010.tex} % XXX XXX XXX \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 une égalisation\index{égalisation} par histogramme\index{histogramme} 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 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} @@ -603,7 +626,7 @@ To be done\index{XXX} \subsubsection{Vers FITS}\index{FITS} 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} @@ -622,21 +645,24 @@ int parse_double(char *str, double *dptr) La fonction \texttt{int format\_from\_extension(char *fname)} examine un -nom defichier tel que \texttt{lena.xxx}, et retourne, si la partie -\texttt{xxx} un éventuel nombre positif, dont les valeurs sont dans floatimg.h +nom de fichier tel que \texttt{lena.xxx}, et retourne, si la partie +\texttt{xxx} est connue, un éventuel nombre positif, dont les valeurs sont +déclarées dans floatimg.h 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 \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} int fimg_killcolors_a(FloatImg *fimg, float fval); int fimg_killcolors_b(FloatImg *fimg, float fval); +int fimg_colors_mixer_a(FloatImg *fimg, float fval); \end{lstlisting} @@ -875,10 +901,11 @@ de qualitay. % ------------------------- -\subsection{fimg2png, fimg2pnm, fimg2tiff} +\subsection{fimg2png, fimg2pnm, fimg2tiff, fimg2fits} \index{fimg2png}\label{fimg2png} \index{fimg2pnm}\label{fimg2pnm} \index{fimg2tiff}\label{fimg2tiff} + \index{fimg2fits}\label{fimg2fits} Quelques petits proggies pour exporter notre format\index{.fimg} secret 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} 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 ?} \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 Formaliser les codes d'erreur. \textbf{Urgent}. \item Faire une passe complète de Valgrind\index{valgrind}. +\item Integrer la fonderie et l'interpolator. \end{itemize} % ------------------------------------------------------------------- @@ -958,7 +986,9 @@ encore un peu rudimentaire vers le programme de capture d'image décrit page \pageref{grabvidseq}. Il utilise deux fichiers dans le répertoire de travail~: \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} 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 ?} 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 pour cela, l'outil le plus commun, le plus répandu, est la webcam\index{webcam}. L'universelle webcam. Et l'incontournable @@ -1124,6 +1155,7 @@ options : -O ./ set Output dir -o bla set output filename -p NN.N delay between frames + -r 90 mode portrait -s WxH size of capture -u try upscaling... -v increase verbosity