forked from tTh/FloatImg
more doc...
This commit is contained in:
parent
d4d2dcc7f5
commit
7eee0bd4d9
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user