Compare commits
No commits in common. "4872ec698c6cb4f12b58062139b911223c941112" and "2b03f3f5167cf85411f62986bf01193d2710b995" have entirely different histories.
4872ec698c
...
2b03f3f516
@ -10,7 +10,7 @@
|
||||
|
||||
% \lstset{frame=single} % dessin d'un cadre autour du listing
|
||||
\lstset{basicstyle=\ttfamily\small}
|
||||
\lstset{aboveskip=0.1em,belowskip=0.1em}
|
||||
\lstset{aboveskip=0.222em,belowskip=0.222em}
|
||||
|
||||
\usepackage{babel} % ?
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\section*{Image flottante ?}
|
||||
\section{Image flottante ?}
|
||||
|
||||
Mais de quoi parle-t-on exactement ?
|
||||
|
||||
@ -89,9 +89,9 @@ la page \pageref{outils} pour quelque chose de plus concret.
|
||||
\pagebreak
|
||||
\setlength \parskip {0.40em}
|
||||
|
||||
\layout \pagebreak
|
||||
% \layout \pagebreak
|
||||
|
||||
% ===================================================================
|
||||
% -------------------------------------------------------------------
|
||||
\section{Théorie}\index{théorie}
|
||||
|
||||
|
||||
@ -128,7 +128,7 @@ Il est très difficle d'imaginer une lumière négative. Sauf peut-être
|
||||
si nous songeons à des coefficients d'absorption, ou un canal
|
||||
\textsl{alpha} qui inverserait les valeurs ?
|
||||
|
||||
% ===================================================================
|
||||
% -------------------------------------------------------------------
|
||||
|
||||
\section{Premier exemple}\index{exemple}\label{exemple}
|
||||
|
||||
@ -203,7 +203,7 @@ d'autres exemples de mise en œuvre des fonctions disponibles
|
||||
sous formes d'outils en ligne de commande,
|
||||
lesquels sont décrits en page \pageref{outils}.
|
||||
|
||||
% ===================================================================
|
||||
% -------------------------------------------------------------------
|
||||
\section{Installation}
|
||||
|
||||
Sauf indications contraires, ces instructions se réfèrent à
|
||||
@ -734,7 +734,7 @@ int fimg_lissage_2x2(FloatImg *img);
|
||||
int fimg_killborders(FloatImg *img);
|
||||
\end{lstlisting}
|
||||
|
||||
Bon, oké, ça marche ? Passons à l'étape suivante.
|
||||
Bon, oké, ça marche ? Passons à l'tape suivante.
|
||||
La convolution avec une matrice 3x3, c'est possible.
|
||||
Et pas trop compliqué à faire.
|
||||
Bon, il reste le souci avec les bordures, souci qui ne peut
|
||||
@ -753,7 +753,7 @@ typedef struct {
|
||||
|
||||
L'usage des champs \texttt{mult} et \texttt{offset} n'est pas
|
||||
clairement défini. Le prototype de la fonction de filtrage
|
||||
non plus, mais assez simple quand même. Source et destination
|
||||
non plus, mais assez simpe quand même. Source et destination
|
||||
ne peuvent désigner la même image, et le champ \texttt{matrix}
|
||||
du filtre doit contenir des valeurs cohérentes.
|
||||
|
||||
@ -817,7 +817,7 @@ de cohérence sur les dimensions des deux images, malgré l'existence
|
||||
de fonctions prévues à cet effet..
|
||||
|
||||
|
||||
% ===================================================================
|
||||
% -------------------------------------------------------------------
|
||||
\section{Les outils}\label{outils}
|
||||
|
||||
\textsf{3615mavie} : sur des projets comme celui-ci, qui travaillent
|
||||
@ -861,6 +861,7 @@ devra être donné avec l'option \texttt{-k F.F} avec une valeur par défaut
|
||||
\item [hdeg/vdeg:] dégradé du noir au blanc (relatif à \texttt{-k}).
|
||||
\end{description}
|
||||
|
||||
|
||||
% ---------------------
|
||||
|
||||
\subsection{png2fimg}\index{png2fimg}\label{png2fimg}
|
||||
@ -1007,9 +1008,9 @@ cumulator options :
|
||||
\end{verbatim}
|
||||
|
||||
Le nom par défaut du fichier résultant est \texttt{out.fimg}.
|
||||
L'exportation « multiformat » est pour bientôt.
|
||||
L'exportation "multiformat" est pour bientôt.
|
||||
|
||||
% ===================================================================
|
||||
% -------------------------------------------------------------------
|
||||
\section{TODO}\index{TODO}\label{TODO}\
|
||||
\index{XXX}
|
||||
|
||||
@ -1029,7 +1030,7 @@ choses seront acquises.
|
||||
\item Vérifier le gestion des images mono-canal.
|
||||
\end{itemize}
|
||||
|
||||
% ===================================================================
|
||||
% -------------------------------------------------------------------
|
||||
\section{Exemples pour yusers}\index{exemple}
|
||||
|
||||
Nous allons \textsl{essayer d'improviser} un exemple presque réel,
|
||||
@ -1208,7 +1209,7 @@ 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}
|
||||
|
||||
Donc, maintenant, nous savons un peu tripoter ces images flottantes.
|
||||
@ -1305,7 +1306,7 @@ la liste des résolutions disponibles.
|
||||
|
||||
Ajustement \textsl{Brightness Contrast Saturation Hue\dots}
|
||||
|
||||
% ===================================================================
|
||||
% -------------------------------------------------------------------
|
||||
\section{À l'extérieur}
|
||||
|
||||
|
||||
@ -1369,23 +1370,14 @@ On peut d'abord penser faire une moyenne (ou la somme, en fait) de toutes
|
||||
ces images. Mais ce n'est qu'une façon déguisée de faire du cumul.
|
||||
C'est à ce moment que nous changeons l'axe de vue du défi.
|
||||
|
||||
Par ailleurs, il m'a semblé pertinent d'inclure dans le projet une
|
||||
foultitude d'effets spéciaux.
|
||||
\subsection{textsl{moving average}}
|
||||
|
||||
\subsection{\textsl{moving average}}
|
||||
|
||||
\texttt{./fonderie} : Basé sur la moyenne mobile.
|
||||
Moyenne mobile.
|
||||
|
||||
\subsection{Interpolator}\index{interpolator}
|
||||
|
||||
Juste des calculs pas si simple que ça.
|
||||
|
||||
\subsection{Singlepass}
|
||||
|
||||
Ce programme \texttt{singlepass} prétend vous permettre de tester
|
||||
tous les filtres disponibles, dont on peut avoir la liste
|
||||
avec l'option \texttt{-L}\footnote{liste hélas peu machinable.}
|
||||
|
||||
\subsection{Déviance}
|
||||
|
||||
Là, nous tombons dans la troiD de haut niveau, avec plein de maths
|
||||
|
@ -22,7 +22,7 @@ typedef struct {
|
||||
|
||||
enum fxid { Fx_cos01=5, Fx_cos010, Fx_pow2, Fx_sqrt, Fx_gray0, Fx_halfsz0,
|
||||
Fx_rot90, Fx_cmixa, Fx_desat, Fx_ctr2x2, Fx_norm,
|
||||
Fx_xper, Fx_binarize, Fx_trinarize,Fx_hilight_R };
|
||||
Fx_xper, Fx_binarize, Fx_hilight_R };
|
||||
|
||||
Fx fx_list[] = {
|
||||
{ "cos01", Fx_cos01, 0, 1 },
|
||||
@ -37,8 +37,7 @@ Fx fx_list[] = {
|
||||
{ "desat", Fx_desat, 0, 1 },
|
||||
{ "ctr2x2", Fx_ctr2x2, 0, 1 },
|
||||
{ "norm", Fx_norm, 0, 1 },
|
||||
{ "binarize", Fx_binarize, 0, 1 },
|
||||
{ "trinarize", Fx_trinarize, 0, 1 },
|
||||
{ "binarize", Fx_binarize, 0, 0 },
|
||||
{ "hilightr", Fx_hilight_R, 0, 1 },
|
||||
{ NULL, 0, 0, 0 }
|
||||
};
|
||||
@ -95,7 +94,6 @@ return 0;
|
||||
static void help(int lvl)
|
||||
{
|
||||
Fx *fx;
|
||||
int foo;
|
||||
|
||||
printf("-- fimg special effects -- %s %s --\n", __DATE__, __TIME__);
|
||||
puts("usage:");
|
||||
@ -107,13 +105,8 @@ puts("\t-v\tincrease verbosity");
|
||||
|
||||
puts("effects:");
|
||||
printf("\t");
|
||||
foo = 0;
|
||||
for (fx=fx_list; fx->name; fx++) {
|
||||
foo += printf("%s ", fx->name);
|
||||
if (foo > 55) {
|
||||
printf("\n\t");
|
||||
foo = 0;
|
||||
}
|
||||
printf("%s ", fx->name);
|
||||
}
|
||||
puts("");
|
||||
fimg_print_version(1);
|
||||
@ -147,7 +140,7 @@ if (fx_list[fxidx].flags & 1) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "%s: ???\n", __func__); /* XXX */
|
||||
/* XXX */
|
||||
memset(&dest, 0, sizeof(dest));
|
||||
}
|
||||
|
||||
@ -194,10 +187,6 @@ switch (action) {
|
||||
fimg_copy_data(&src, &dest);
|
||||
foo = fimg_binarize(&dest, 0);
|
||||
break;
|
||||
case Fx_trinarize:
|
||||
fimg_copy_data(&src, &dest);
|
||||
foo = fimg_trinarize(&dest, 0);
|
||||
break;
|
||||
case Fx_hilight_R:
|
||||
foo = fimg_highlight_color(&src, &dest, 'R', 1.333);
|
||||
break;
|
||||
@ -214,11 +203,6 @@ if (foo) {
|
||||
return foo;
|
||||
}
|
||||
|
||||
fimg_destroy(&src);
|
||||
if (dest.type) {
|
||||
fimg_destroy(&dest);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* --------------------------------------------------------------------- */
|
||||
|
Loading…
Reference in New Issue
Block a user