J'explique comment fonctionnent les filtres, notamment en tant que parfois simples graphes d'operations GEGL. Il peut ainsi y avoir des opérations de base qui sont codés en C (mais mon atelier ne rentre pas là-dedans). À partir de là, on peut créer d'autres opérations en reliant des opérations existantes.
Le matin, après la conférence où j'ai surtout survolé énormément de sujets théoriques sur la couleur et le traitement d'image (l'idée étant de donner un aperçu du sujet et donner envie d'en savoir/comprendre plus; c'est pas comme si en 2H, on peut vraiment expliquer ce que beaucoup ne comprennent pas complètement après des années à travailler dessus!), on a eu un premier atelier où j'ai montré quelques usages d'effets, notamment en cumulant plusieurs effets. Que ce soit des trucs marrants comme juste "faire un sabre laser" à des trucs qui font plus sérieux comme implémenter de la détection de contours en faisant une simple différence de deux flous gaussiens. Ce qui existe déjà car c'est un usage classique; et l'effet s'appelle étonnamment (ou non! 😜) "difference of gaussians", sauf que dans le cadre de l'atelier, je le "réimplémente" très simplement en appliquant les étapes une par une.
Dans GIMP, comme un utilisateur normal, parce que je pense que même pour un développeur, il est important de voir comment les utilisateurs travaillent réellement pour faire de bons choix (et ne pas voir que l'aspect "code"). Puis on a bougé vers l'outil de "graphe GEGL" où on peut créer des effets en créant des graphes avec une syntaxe textuelle. C'est un super outil pour tester des graphes d'effets très rapidement sans avoir à rentrer dans du code pur et dur dès le début.
L'après-midi, on a fait un peu de code en créant des plug-ins pour GIMP en Python 3 (j'ai fait exprès de choisir Python pour ne pas avoir à se farcir des problèmes de compilation; On veut pas transformer ça en cours sur le C ou les problèmes de build!). Ce n'était pas des plug-ins très complexes, ni forcément pour faire des choses extraordinaires, l'idée était de montrer une logique incrémentale de "comment on modifie une image". Sur un premier plug-in, on a simplement itéré sur chaque pixel du buffer d'un calque. Sur un second, je rajoute une difficulté en montrant que le premier plug-in "casse" si on a un canal alpha (opacité). Puis je passe progressivement à des transformations par graphes d'opérations, d'abord avec une, puis plusieurs, puis en utilisant non plus un seul mais plusieurs calques en entrée dans le graphe, etc. L'idée est de complexifier progressivement et de montrer que c'est finalement assez simple. Il faut juste piger la logique de ce traitement d'image par graphe, comme un flux d'opérations par lequel passe un (ou des) buffer(s) en entrée puis on récupère un buffer en sortie. Ça démystifie aussi beaucoup ce travail de traitement d'images (qui finalement est une des bases de l'informatique de nos jours, puisqu'on met des interfaces graphiques partout).
On mêle à cela quelques pièges intéressants qui montrent que les concepts de modèles et d'espaces de couleur restent toujours en arrière plan de ce type de travail. Un exemple très simple est une simple "inversion" des couleurs. Faire le choix de travailler en linéaire ou non donnera un rendu complètement différent (il n'y a pas de "bon choix", ça dépend vraiment de ce qu'on veut).
En gros, c'est ce genre de trucs. C'était la première fois que je donnais un tel séminaire et ça s'est très bien passé, donc je suis plutôt content de moi. Je pense que c'est une bonne introduction au monde du traitement d'image. Et ce, même si on fait le choix de continuer sans GIMP ni GEGL ensuite. Tout cela reste des concepts et des logiques de traitement d'image classiques que l'on retrouvera dans beaucoup d'autres logiciels/outils/bibliothèques graphiques. :-)
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Fonctions non bijectives
Posté par Jehan (site web personnel, Mastodon) . En réponse au message De la gestion de couleurs. Évalué à 8. Dernière modification le 09 mai 2023 à 23:11.
C'était un atelier où:
En gros, c'est ce genre de trucs. C'était la première fois que je donnais un tel séminaire et ça s'est très bien passé, donc je suis plutôt content de moi. Je pense que c'est une bonne introduction au monde du traitement d'image. Et ce, même si on fait le choix de continuer sans GIMP ni GEGL ensuite. Tout cela reste des concepts et des logiques de traitement d'image classiques que l'on retrouvera dans beaucoup d'autres logiciels/outils/bibliothèques graphiques. :-)
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]