Compare commits
No commits in common. "004f24689b08601ba3cd33c76e8afc9d09149ea7" and "ce6d6e58bba3a63ef8f7d420fc0cc4cd196603c2" have entirely different histories.
004f24689b
...
ce6d6e58bb
@ -3,7 +3,7 @@
|
|||||||
Avec toutes ces fonctions disponibles et `grabvidseq`, nous
|
Avec toutes ces fonctions disponibles et `grabvidseq`, nous
|
||||||
savons faire des images **floues**. L'étape suivante, les plus
|
savons faire des images **floues**. L'étape suivante, les plus
|
||||||
pervers d'entre vous le savent déja, est celle de la création
|
pervers d'entre vous le savent déja, est celle de la création
|
||||||
de **films flous** dans le domaine spacio-temporel.
|
de **films flous** dans le domaine spacial.
|
||||||
|
|
||||||
À l'heure actuelle, il y a plusieurs programmes distincts. Le premier
|
À l'heure actuelle, il y a plusieurs programmes distincts. Le premier
|
||||||
(fonderie) fait une moyenne mobile sur N images consécutives,
|
(fonderie) fait une moyenne mobile sur N images consécutives,
|
||||||
@ -16,7 +16,7 @@ de filtres...
|
|||||||
## Chaine de filtres
|
## Chaine de filtres
|
||||||
|
|
||||||
Ce système connait un certain nombre de filtres et d'effets spéciaux
|
Ce système connait un certain nombre de filtres et d'effets spéciaux
|
||||||
destinés à augmenter la kitchitude du produit final. Ils peuvent être chainés
|
destinés à la kitchitude du produit final. Ils peuvent être chainés
|
||||||
les uns après les autres, à l'entrée et à la sortie du process
|
les uns après les autres, à l'entrée et à la sortie du process
|
||||||
de floutagement.
|
de floutagement.
|
||||||
|
|
||||||
@ -26,8 +26,7 @@ L'option `-L` de ces logiciels permet d'obtenir la liste des filtres.
|
|||||||
|
|
||||||
Une chaine de filtres est constituée d'une liste de nom ou de numéro
|
Une chaine de filtres est constituée d'une liste de nom ou de numéro
|
||||||
de filtre, séparés par le caractère `:`, une façon de faire très
|
de filtre, séparés par le caractère `:`, une façon de faire très
|
||||||
classique dans notre univers, en fait. Et si on veut prendre des risques,
|
classique dans notre univers, en fait.
|
||||||
on doit continuer à appeler les filtres par leur numéro, jdçjdr.
|
|
||||||
|
|
||||||
`mirsplit:ctr2x2:3:killlines`
|
`mirsplit:ctr2x2:3:killlines`
|
||||||
|
|
||||||
|
@ -995,75 +995,17 @@ 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{fimg2text}
|
|
||||||
|
|
||||||
Voici donc quelque chose qui retourne vers la bonne vieille
|
|
||||||
tradition Unix\index{Unix} et permet de traiter des images
|
|
||||||
flottantes avec des outils classiques comme l'injustement
|
|
||||||
méconnu \texttt{Awk}\index{Awk}.
|
|
||||||
Dans le comportement par défaut (le seul actuellement) cet outil
|
|
||||||
sort, pour chaque pixel, cinq valeurs~:
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
\item Les coordonnées entières $x,y$ du pixel
|
|
||||||
\item Les valeurs flottantes des composantes \textsc{rgb}
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
On peut même espérer qu'un jour, il soit possible de faire
|
|
||||||
la transformation inverse. Quelle joie de générer des images
|
|
||||||
flottantes avec un programme écrit en \textit{gw-basic} :)
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
tth@fubar:~/Devel/FloatImg/doc$ fimg2text -h
|
|
||||||
usage:
|
|
||||||
fimg2text [options] foo.fimg > bar.csv
|
|
||||||
options:
|
|
||||||
-v increase verbosity
|
|
||||||
-n 3.14 normalize picture
|
|
||||||
-s N steps on x & y
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
Vous voulez un petit exemple ?
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
tth@fubar:~/Devel/FloatImg/doc$ mkfimg -t drand48 quux.fimg 4 2
|
|
||||||
tth@fubar:~/Devel/FloatImg/doc$ fimg2text -s 1 quux.fimg
|
|
||||||
0 0 142.518127 84.036987 20.688946
|
|
||||||
1 0 164.273315 68.397079 138.501587
|
|
||||||
2 0 45.887970 25.905518 93.683243
|
|
||||||
3 0 53.292942 222.000000 111.711548
|
|
||||||
0 1 82.289795 113.054855 180.530014
|
|
||||||
1 1 42.051765 114.543625 4.249123
|
|
||||||
2 1 71.826775 96.219109 63.222294
|
|
||||||
3 1 160.535675 136.104919 204.020691
|
|
||||||
tth@fubar:~/Devel/FloatImg/doc$
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
Et maintenant, vous voulez un gros exemple ?
|
|
||||||
|
|
||||||
|
|
||||||
% -------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{fimg2gray}\index{fimg2gray}\label{fimg2gray}
|
\subsection{fimg2gray}\index{fimg2gray}\label{fimg2gray}
|
||||||
|
|
||||||
Nous avons vu dans ce document que chaque image flottante pouvait
|
Nous avons vu dans ce document que chaque image flottante pouvait
|
||||||
avoir plusieurs plans de réalité. Il ne faut en négliger aucun,
|
avoir plusieurs plans de réalité. Il ne faut en négliger aucun.
|
||||||
voire même tenter de les faire se rencontrer, se combiner et
|
|
||||||
s'influencer mutuellement.
|
|
||||||
|
|
||||||
Il faut quand même deviner que pour passer de l'espace RGB\index{RGB}
|
Il faut quand même deviner que pour passer de l'espace RGB\index{RGB}
|
||||||
à une abstraction linéaire mono-dimensionnelle, il existe une foultitude
|
à une abstraction linéaire mono-dimensionnelle, il existe une foultitude
|
||||||
de méthodes, toutes plus légitimes que les autres.
|
de méthodes, toutes plus légitimes que les autres.
|
||||||
\index{procrastination}
|
\index{procrastination}
|
||||||
Et face à l'incertitude du choix, j'ai reporté l'écriture de ce
|
Et face à l'incertitude du choix, j'ai reporté l'écriture de ce
|
||||||
logiciel aux calendes grecques, voire même plus tard,
|
logiciel aux calendes grecques, voire même plus tard.
|
||||||
après la grande pandémie\dots
|
|
||||||
|
|
||||||
% -------------------------
|
|
||||||
|
|
||||||
\subsection{cumulfimgs}\index{cumulfimgs}\label{cumulfimgs}
|
\subsection{cumulfimgs}\index{cumulfimgs}\label{cumulfimgs}
|
||||||
|
|
||||||
|
@ -90,11 +90,6 @@ fprintf(stderr, ">>> %25s ( '%s' '%s' %d )\n", __func__,
|
|||||||
srcname, dstname, notused);
|
srcname, dstname, notused);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (steps < 1) {
|
|
||||||
fprintf(stderr, "%s: steps MUST be > 0\n", __func__);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
foo = fimg_fileinfos(srcname, infos);
|
foo = fimg_fileinfos(srcname, infos);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "'%s' get dims -> %d\n", srcname, foo);
|
fprintf(stderr, "'%s' get dims -> %d\n", srcname, foo);
|
||||||
@ -147,13 +142,11 @@ exit(0);
|
|||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int foo, opt;
|
int foo, opt;
|
||||||
int steps = 1;
|
int steps = 16;
|
||||||
float norm_val = 222.0; /* < 0 : don't normalize */
|
float norm_val = 222.0; /* < 0 : don't normalize */
|
||||||
char separator = ' ';
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "f:hn:s:v")) != -1) {
|
while ((opt = getopt(argc, argv, "hn:s:v")) != -1) {
|
||||||
switch(opt) {
|
switch(opt) {
|
||||||
case 'f': separator = optarg[0]; break;
|
|
||||||
case 'v': verbosity++; break;
|
case 'v': verbosity++; break;
|
||||||
case 'h': help(1); exit(1);
|
case 'h': help(1); exit(1);
|
||||||
case 's': steps = atoi(optarg); break;
|
case 's': steps = atoi(optarg); break;
|
||||||
|
Loading…
Reference in New Issue
Block a user