URL: https://linuxfr.org/news/g-mic-2-2-v-la-les-filtres Title: G’MIC : 2.2, v’là les filtres ! Authors: David Tschumperlé Davy Defaud, teoB, BAud, ZeroHeure et Pierre Jarillon Date: 2018年02月06日T14:57:33+01:00 License: CC By-SA Tags: g'mic et traitement_d'images Score: 101 [L’équipe IMAGE](https://www.greyc.fr/?page_id=443&lang=en) du laboratoire [GREYC](https://www.greyc.fr) (UMR [CNRS](http://www.cnrs.fr) 6072), situé à Caen, est ravie de vous annoncer la sortie d’une nouvelle version (numérotée **2.2**) de [_G’MIC_](http://gmic.eu), son cadriciel libre, générique et extensible pour le [traitement des images](https://fr.wikipedia.org/wiki/Traitement_d%27images). Comme [à notre habitude](http://linuxfr.org/redirect/101391), nous profitons de cette occasion pour faire un point sur les dernières fonctionnalités notables ajoutées depuis la version majeure précédente (**2.0**), sortie qui avait fait l’objet d’une [dépêche](http://linuxfr.org/news/g-mic-2-0-un-second-souffle-pour-le-traitement-d-images-libre) sur _LinuxFr.org_, en juin 2017. ---- [Le projet G’MIC](http://gmic.eu) [Fil Twitter](https://twitter.com/gmic_ip) [Le Web service G’MIC Online](https://gmicol.greyc.fr) [Série d’articles G’MIC sur LinuxFr.org](http://linuxfr.org/tags/gmic/public) ---- _N. D. A. : Cliquez sur les images de la dépêche pour en visualiser des versions à meilleure résolution._ # 1. Contexte et évolutions récentes du projet _G’MIC_ est un projet libre développé depuis août 2008 (distribué sous licence [CeCILL](http://www.cecill.info/)), dans l’équipe [IMAGE](https://www.greyc.fr/image) du laboratoire [GREYC](https://www.greyc.fr/), laboratoire de recherche public français localisé à Caen et chapeauté par trois tutelles : le [CNRS](http://www.cnrs.fr), l’[Université de Caen](http://www.unicaen.fr/), et l’[ENSICAEN](http://www.ensicaen.fr/). Cette équipe est composée de chercheurs et d’enseignants‐chercheurs spécialisés dans les domaines de l’algorithmique et des mathématiques du traitement d’images. [![G’MIC logo](http://gmic.eu/gmic220/thumbs/logo_gmic.png)](http://gmic.eu/gmic220/fullsize/logo_gmic.png) _Fig. 1.1 : Logo du projet G’MIC, cadriciel libre pour le traitement d’images, et sa mignonne petite mascotte « Gmicky » (élaborée par [David Revoy](http://www.davidrevoy.com/))._ _G’MIC_ est multi‐plate‐forme (GNU/Linux, macOS, Windows...) et fournit un ensemble d’interfaces utilisateur variées pour la manipulation de données images _génériques_, à savoir des images ou des séquences d’images hyperspectrales 2D ou 3D à valeurs flottantes (ce qui inclut de fait les images couleur « classiques »). Plus de [950 fonctions](http://gmic.eu/reference.shtml) différentes de traitement d’images sont déjà disponibles dans ce cadriciel, nombre extensible à l’infini puisque les utilisateurs ont la possibilité de développer et d’ajouter leurs propres fonctionnalités via l’utilisation du langage de script intégré, spécifiquement dédié à la réalisation de _pipelines_ de traitement d’images. [![Greffon G’MIC pour GIMP](http://gmic.eu/gmic220/thumbs/gmic_220.png)](http://gmic.eu/gmic220/fullsize/gmic_220.png) _Fig.1.2 : Le greffon_ G’MIC-Qt _pour GIMP, aujourd’hui l’interface utilisateur de G’MIC la plus populaire._ Deux événements d’importance dans la vie du projet ont eu lieu, depuis la sortie de la dernière version majeure : ## 1.1. Portage du greffon G’MIC-Qt vers [Krita](http://www.krita.org) Lors de la sortie de la version 2.0, nous étions heureux d’annoncer une refonte complète (en [_Qt_](https://fr.wikipedia.org/wiki/Qt)) du code du greffon _G’MIC_ pour [GIMP](http://www.gimp.org), de façon à disposer d’un greffon _G’MIC-Qt_ théoriquement « universel », c’est‐à‐dire déclinable pour fonctionner sur d’autres logiciels hôtes que GIMP. Eh bien, une étape supplémentaire a été franchie, puisque ce greffon a été effectivement étendu pour s’intégrer dans le logiciel libre de peinture numérique [Krita](http://www.krita.org). Ceci a été rendu possible grâce au travail de développement de [Boudewijn Rempt](https://twitter.com/boudewijnrempt) (mainteneur principal de Krita) et de [Sébastien Fourey](https://foureys.users.greyc.fr/) (développeur du greffon). Le greffon _G’MIC-Qt_ est aujourd’hui disponible pour les versions 3.3+ de Krita et, même s’il n’implémente pas encore toutes les fonctionnalités d’entrées‐sorties de son équivalent pour GIMP, les retours d’utilisation que nous avons eu sont plutôt positifs. Ce nouveau portage remplace _de facto_ l’ancien greffon _G’MIC_ pour Krita qui n’était plus maintenu depuis quelque temps. La bonne nouvelle pour les utilisateurs et les développeurs de Krita, c’est qu’ils disposent maintenant d’un greffon dont le code est commun avec celui fonctionnant sous GIMP, et dont nous allons pouvoir assurer la plus grosse partie de maintenance et de mise à jour. À noter que ce portage a nécessité principalement l’écriture d’un fichier source [`host_krita.cpp`](https://github.com/c-koi/gmic-qt/blob/master/src/Host/Krita/host_krita.cpp) (en _C++_) permettant la communication entre le logiciel hôte et le greffon, et on peut raisonnablement penser qu’un effort similaire permettrait à d’autres logiciels de disposer eux aussi de leur propre version du greffon _G’MIC_, et des quelques 500 filtres de traitement d’images livrés avec ! Avis aux développeurs... [![G’MIC pour Krita](http://gmic.eu/gmic220/thumbs/gmic_krita.png)](http://gmic.eu/gmic220/fullsize/gmic_krita.png) _Fig. 1.3 : Aperçu du greffon G’MIC-Qt tournant sous Krita._ ## 1.2. Une licence CeCILL-C, plus permissive Seconde nouvelle importante, la licence d’utilisation [_CeCILL-C_](http://www.cecill.info/licences/Licence_CeCILL-C_V1-fr.html) (licence dans l’esprit de la [_LGPL_](https://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_limit%C3%A9e_GNU)) est maintenant proposée pour certains composants du cadriciel _G’MIC_. Cette licence est plus permissive que la licence [_CeCILL_](http://www.cecill.info/licences/Licence_CeCILL_V2.1-fr.html) (qui, elle, est compatible [_GPL_](https://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU)) qui s’appliquait jusque ici, et plus adaptée à la distribution de bibliothèques logicielles. Cette extension de licence (double licence) concerne justement le cœur de calcul de _G’MIC_ via sa bibliothèque _C++_ _libgmic_. Cette nouvelle licence autorise l’intégration des fonctionnalités de la _libgmic_ (donc, de tous ses algorithmes de traitement d’images) dans des logiciels non licenciés en GPL/CeCILL (incluant les logiciels à sources fermées). Le code source du greffon _G’MIC-Qt_, quant à lui, reste distribué sous licence unique CeCILL. # 2. Collaboration féconde avec David Revoy Si vous avez suivi nos [épisodes précédents](http://linuxfr.org/tags/gmic/public), vous avez peut‐être remarqué que nous citons très souvent l’artiste illustrateur [David Revoy](http://www.davidrevoy.com) pour ses contributions multiples à _G’MIC_ : dessin de la mascotte, idées de filtres, tutoriels écrits ou vidéo, tests en tout genre, etc. Plus généralement, David est un contributeur important au monde de l’art numérique libre, autant avec la bande dessinée [_Pepper & Carrot_](https://www.peppercarrot.com/), qu’il élabore (distribuée sous licence libre _CC-BY_), qu’avec ses suggestions et rapports de bogues continuels pour les logiciels libres qu’il utilise. Il paraît donc tout naturel de lui consacrer une section spéciale dans cette dépêche, relatant les différentes idées, contributions et expérimentations qu’il a apportées à _G’MIC_ tout récemment. Un grand merci à lui pour sa disponibilité, le partage de ses idées, et tant qu’on y est, l’ensemble de son œuvre. ## 2.1. Perfectionnement du filtre de colorisation de dessins au trait Évoquons tout d’abord les progrès apportés au filtre [_Black & White / Colorize lineart [smart-coloring]_](http://linuxfr.org/news/g-mic-2-0-un-second-souffle-pour-le-traitement-d-images-libre#3-faciliter-la-vie-des-dessinateurs), filtre qui était apparu lors de la sortie de la version 2.0 de _G’MIC_. C’est un filtre d’aide à la colorisation en aplats de dessins au trait (également dénommés _line art_), qui avait été élaboré en collaboration avec David. Le principe de ce filtre était de générer automatiquement un calque de colorisation aléatoire pour un dessin donné, à partir de l’analyse fine des contours présents dans le calque d’entrée contenant le dessin au trait. En suivant les suggestions de David, nous avons pu ajouter un nouveau mode de colorisation : le mode _Autoclean_. Ce dernier permet de « nettoyer » automatiquement un calque de coloriage (réalisé grossièrement) fourni par l’utilisateur en plus du _line art_, en utilisant la même analyse géométrique des contours que pour les modes de colorisation précédents. L’utilisation de ce nouveau mode est illustré ci‐dessous, où un dessin donné (à gauche) a été colorisé de manière approximative par l’utilisateur. À partir des deux calques _line art_ + _colorisation grossière_, le mode _Autoclean_ du filtre de colorisation va générer l’image (de droite), où les couleurs ne débordent plus des contours (même des contours « virtuels » non fermés !). Le résultat n’est pas toujours parfait, mais permet néanmoins de réduire le temps passé au processus fastidieux de colorisation. [![gmic_autoclean|690x302](http://gmic.eu/gmic220/thumbs/gmic_autoclean.png)](http://gmic.eu/gmic220/fullsize/gmic_autoclean.png) _Fig. 2.1 : Le nouveau mode_ Autoclean _du filtre de colorisation de dessin au trait permet de nettoyer automatiquement un calque d’aplats de couleurs peint approximativement._ À noter que ce même filtre se dote également d’un nouveau module de détection de hachures, qui permet de ne pas générer trop de petites régions en utilisant l’ancien mode de colorisation aléatoire, lorsque le dessin au trait comporte un nombre important de hachures (résultat de droite sur la figure ci‐dessous). Assurément du temps gagné pour l’assignation des couleurs finales par l’artiste ! [![gmic_hatch_detect|690x187](http://gmic.eu/gmic220/thumbs/gmic_hatch_detection2.png)](http://gmic.eu/gmic220/fullsize/gmic_hatch_detection2.png) _Fig. 2.2 : Le nouveau module de détection de hachures limite le nombre de petites zones de couleurs inutiles générées par le mode de colorisation aléatoire automatique._ ## 2.2. Égaliseur dans les espaces colorimétriques HSI, HSL et HSV Plus récemment, David nous a suggéré l’idée d’un filtre permettant de faire varier séparément les teintes et les saturations des couleurs possédant certains niveaux de luminosité. L’idée sous‐jacente est de donner à l’artiste la possibilité de dessiner ou peindre numériquement en utilisant seulement des niveaux de gris, puis de coloriser après coup son chef d’œuvre simplement en assignant des couleurs particulières aux différentes valeurs de gris de l’image. La version couleur obtenue possède une palette certes limitée, mais dont l’ambiance colorimétrique globale est déjà en place. L’artiste n’a plus qu’à retoucher localement les couleurs plutôt que d’avoir à coloriser l’ensemble du dessin à la main. La figure ci‐dessous illustre l’utilisation de ce nouveau filtre égaliseur _Colors / Equalize HSI/HSL/HSV_ via le greffon _G’MIC_ : chaque catégorie de valeurs peut être ajustée finement, avec pour résultats des colorisations préliminaires de dessins en noir et blanc assez bluffants ! On reconnaît dans tous ces exemples la patte artistique de David, qui a lui‐même effectué les tests de ce filtre. [![Equalize HSI1](http://gmic.eu/gmic220/thumbs/gmic_equalize_hsi.png)](http://gmic.eu/gmic220/fullsize/gmic_equalize_hsi.png) [![Equalize HSI2](http://gmic.eu/gmic220/thumbs/gmic_equalize_hsi5.png)](http://gmic.eu/gmic220/fullsize/gmic_equalize_hsi5.png) [![Equalize HSI3](http://gmic.eu/gmic220/thumbs/gmic_equalize_hsi2.png)](http://gmic.eu/gmic220/fullsize/gmic_equalize_hsi2.png) _Fig. 2.3 : Le filtre_ Equalize HSI/HSL/HSV _permet d’assigner des teintes quelconques à des pixels de différentes valeurs de gris._ Notons que dans le cas d’une image d’entrée en niveaux de gris, l’effet est équivalent à appliquer un gradient de couleurs aux différentes valeurs de l’image, ce qui pouvait déjà se faire assez facilement dans GIMP. Mais l’intérêt ici est de s’assurer que la luminosité des pixels reste inchangée lors de la transformation couleur appliquée, ce qui n’est pas une propriété évidente à préserver lorsqu’on effectue ce type de traitement manuellement via la définition d’un gradient couleurs. Et ce qui est sympa avec ce filtre, c’est qu’il peut aussi s’appliquer aux photographies déjà en couleurs. On peut ainsi modifier la teinte et la saturation de couleurs possédant une certaine luminosité, avec un effet pouvant être parfois surprenant, comme celui obtenu sur la photographie de paysage ci‐dessous. [![Equalize HSI4](http://gmic.eu/gmic220/thumbs/gmic_eqhsi_tree_all.png)](http://gmic.eu/gmic220/fullsize/gmic_eqhsi_tree_all.png) _Fig. 2.4 : Le filtre_ Equalize HSI/HSL/HSV _appliqué sur une photographie couleur permet de changer son ambiance colorimétrique, ici de manière assez extrême._ ## 2.3. Déformations anguleuses Une autre demande de David a concerné l’élaboration d’un filtre de déformation locale aléatoire d’image, ayant la particularité de générer des déformations anguleuses. D’un point de vue algorithmique, ça semblait relativement simple à réaliser. Notons qu’une fois l’implémentation effectuée (en style concis : [12 lignes !](https://pastebin.com/VurLncvs)) et intégrée dans les mises à jour officielles, David a juste eu à appuyer sur le bouton _Mettre les filtres à jour_ de son greffon _G’MIC_ pour Krita et le nouvel effet _Deformations / Crease_ est apparu dans sa liste de filtres, avec la possibilité pour lui de le tester immédiatement. C’est aussi ça le côté pratique de _G’MIC_ ! [![G’MIC Crease](http://gmic.eu/gmic220/thumbs/gmic_crease.png)](http://gmic.eu/gmic220/fullsize/gmic_crease.png) _Fig. 2.5 : Nouvel effet_ Crease _pour des déformations locales anguleuses._ En revanche, on ne savait pas franchement à quoi ce truc pouvait bien servir en pratique. Mais ce qui est bien quand on coopère avec David, c’est que, lui, il sait très bien ce qu’il va en faire ! Et sur ses expérimentations à lui, ça a tout de suite plus d’allure. En témoigne les deux utilisations qu’il en a fait ci‐dessous, d’une part pour donner un aspect crénelé aux bords de certaines de ses cases de BD, et d’autre part pour améliorer le rendu d’un « rayon _alien_ de la mort ». [![G’MIC Crease 2](http://gmic.eu/gmic220/thumbs/gmic_crease2.png)](http://gmic.eu/gmic220/fullsize/gmic_crease2.png) [![G’MIC Crease 3](http://gmic.eu/gmic220/thumbs/gmic_crease3.png)](http://gmic.eu/gmic220/fullsize/gmic_crease3.png) _Fig. 2.6 : Utilisation du filtre_ Crease _pour deux cas concrets de création artistique._ # 3. Toujours plus de filtres... David Revoy n’est _a priori_ pas le seul utilisateur de _G’MIC_, nous observons en effet entre 600 et 900 téléchargements quotidiens depuis le site principal du projet. Et il arrive, bien sûr, que d’autres utilisateurs emballés inspirent de nouveaux effets à ajouter, en particulier lors des discussions qui ont lieu sur notre [forum](https://discuss.pixls.us/c/software/gmic) principal, aimablement mis à disposition par la communauté [_PIXLS.US_](https://pixls.us/). ## 3.1. Faire ressortir les détails sans créer de « halos » Beaucoup de photographes vous le diront : il n’est pas toujours évident de rehausser les détails dans des photographies numériques sans créer par ailleurs de vilains [artéfacts](https://fr.wikipedia.org/wiki/Art%C3%A9fact) qu’il faut souvent remasquer « à la main » après coup. Il faut savoir que les algorithmes de rehaussement de contraste classiques se basent le plus souvent sur l’augmentation de la variance locale des intensités lumineuses des pixels, voire sur l’égalisation de leurs histogrammes locaux. Malheureusement, ces opérations se font généralement en considérant des voisinages à taille et géométrie fixées, où chaque pixel d’un voisinage est toujours considéré avec le même poids dans les calculs statistiques liés à ces algorithmes. C’est plus simple et plus rapide, mais d’un point de vue qualitatif ce n’est pas une excellente idée : on se retrouve couramment avec des effets de « halos » autour des contours qui étaient déjà très contrastés dans l’image. Ce phénomène classique est illustré par le cas d’école ci‐dessous avec l’application du filtre _Unsharp mask_ (présent par défaut dans GIMP) sur une partie d’image de paysage montagneux, et qui génère un « halo » indésirable à la frontière entre montagne et ciel (particulièrement visible sur les images en pleine résolution). [![G’MIC details filters](http://gmic.eu/gmic220/thumbs/gmic_highland01.png)](http://gmic.eu/gmic220/fullsize/gmic_highland01.png) _Fig. 3.1 : Des effets de « halos » indésirables apparaissent souvent avec les filtres usuels de rehaussement de contraste._ Tout l’enjeu des algorithmes de rehaussement de détails est donc d’être capable d’analyser la géométrie locale des structures dans les images de manière plus fine, pour prendre en compte des « poids » locaux plus adaptés pour chaque pixel des voisinages considérés. Pour simplifier, on veut rendre [anisotropes](https://fr.wikipedia.org/wiki/Anisotropie) ces méthodes de rehaussement, en les orientant par les contours présents dans les images. C’est en suivant cette voie que deux nouveaux filtres _G’MIC_ ont fait leur apparition récemment, à savoir _Details / Magic details_ et _Details / Equalize local histograms_, qui essayent de mieux prendre en compte le contenu géométrique de l’image pour ce travail de rehaussement local, grâce à l’utilisation du [filtre bilatéral](https://en.wikipedia.org/wiki/Bilateral_filter). [![G’MIC magic details](http://gmic.eu/gmic220/thumbs/gmic_magic_details.png)](http://gmic.eu/gmic220/fullsize/gmic_magic_details.png) [![G’MIC equalize local histograms](http://gmic.eu/gmic220/thumbs/gmic_eqdetails1.png)](http://gmic.eu/gmic220/fullsize/gmic_eqdetails1.png) [![G’MIC equalize local histograms](http://gmic.eu/gmic220/thumbs/gmic_eqdetails.gif)](http://gmic.eu/gmic220/fullsize/gmic_eqdetails.gif) _Fig. 3.2 : Les nouveaux filtres de rehaussement de détails de G’MIC._ Ainsi, l’application du nouveau filtre d’égalisation locale d’histogrammes de _G’MIC_ sur l’image de paysage montagneux donne un résultat plus contrasté en détails géométriques et en couleurs, et ne fait plus apparaître de halos. [![G’MIC details filters](http://gmic.eu/gmic220/thumbs/gmic_highland01.png)](http://gmic.eu/gmic220/fullsize/gmic_highland01.png) [![G’MIC magic details](http://gmic.eu/gmic220/thumbs/gmic_highland02.png)](http://gmic.eu/gmic220/fullsize/gmic_highland02.png) [![G’MIC magic details](http://gmic.eu/gmic220/thumbs/gmic_highland.gif)](http://gmic.eu/gmic220/fullsize/gmic_highland.gif) _Fig. 3.3 : Différences de résultats entre le filtre_ Unsharp Mask _classique et l’égalisation locale d’histogrammes de G’MIC, pour le rehaussement de détails._ ## 3.2. Des déformations en tout genre Régulièrement, de nouveaux filtres permettant de réaliser des déformations géométriques sur les images sont ajoutés à _G’MIC_, et cette nouvelle version majeure 2.2 ne déroge pas à cette règle. Commençons donc par le filtre _Deformations / Spherize_, qui permet de déformer localement l’image pour donner l’impression que celle‐ci est projetée sur une sphère ou un ellipsoïde 3D. C’est le filtre idéal pour transformer votre odieux collègue de bureau en [Monsieur Patate](https://fr.wikipedia.org/wiki/M._Patate_(jouet)) ! [![G’MIC spherize](http://gmic.eu/gmic220/thumbs/gmic_spherize.png)](http://gmic.eu/gmic220/fullsize/gmic_spherize.png) [![G’MIC spherize](http://gmic.eu/gmic220/thumbs/gmic_spherize.gif)](http://gmic.eu/gmic220/fullsize/gmic_spherize.gif) _Fig .3.4 : Deux exemples de déformations sphériques 3D réalisées avec le filtre_ Spherize _de G’MIC._ Le filtre _Deformations / Square to circle_, quant à lui, implémente des transformations directes et inverses d’un domaine carré (ou d’un rectangle) vers un disque (ainsi que décrit mathématiquement sur [_cette page_](http://squircular.blogspot.fr/2015/09/mapping-circle-to-square.html)), ce qui permet de générer ce type de déformations. [![G’MIC square to circle](http://gmic.eu/gmic220/thumbs/gmic_sqtoci.gif)](http://gmic.eu/gmic220/fullsize/gmic_sqtoci.gif) _Fig. 3.5 : Transformations directes et inverses d’un carré vers un disque._ L’effet _Degradations / Streak_ remplace une zone d’image masquée par l’utilisateur (remplie par une couleur uniforme) par une ou plusieurs copies d’une zone voisine. Il fonctionne principalement comme l’outil de clonage de GIMP mais évite à l’utilisateur de réaliser le remplissage de tout le masque à la main. [![G’MIC streak](http://gmic.eu/gmic220/thumbs/gmic_streak.gif)](http://gmic.eu/gmic220/fullsize/gmic_streak.gif) _Fig. 3.6 : Le filtre_ Streak _recopie une partie de l’image dans une zone masquée définie par l’utilisateur._ ## 3.3. Abstractions artistiques Vous allez me dire que les déformations c’est sympathique, mais qu’on désire parfois transformer une image de façon plus radicale. Tournons‐nous donc maintenant vers les nouveaux effets qui transforment une image en une version plus abstraite (simplifiée ou redessinée). Ces filtres ont en commun une analyse de la géométrie des structures de l’image, suivie d’une étape de re‐synthèse — avec plus ou moins de bonheur. Par exemple, le filtre _Contours / Super‐pixels_ tente de regrouper localement les pixels de même couleur pour former une image partitionnée, façon puzzle, par des formes géométriques qui collent aux contours. Cette partition est obtenue via la méthode [SLIC](https://ivrl.epfl.ch/research/superpixels) (_Simple Linear Iterative Clustering_), un algorithme classique de partitionnement d’images, qui a l’avantage d’être relativement rapide en temps de calcul. [![G’MIC super pixels 1](http://gmic.eu/gmic220/thumbs/gmic_slic.png)](http://gmic.eu/gmic220/fullsize/gmic_slic.png) [![G’MIC super pixels 2](http://gmic.eu/gmic220/thumbs/gmic_slic2.png)](http://gmic.eu/gmic220/fullsize/gmic_slic2.png) _Fig. 3.7 : Décomposition d’une image en super‐pixels, par l’algorithme SLIC (Simple Linear Iterative Clustering)._ Le filtre _Artistic / Linify_ tente quant à lui de redessiner une image d’entrée en superposant des droites colorées semi‐transparentes sur un canevas initialement blanc, comme le montre la figure ci‐dessous. Cet effet est la ré‐implémentation d’un algorithme ingénieux initialement proposé sur le site [http://linify.me/](http://linify.me) (implémenté en JavaScript). [![G’MIC linify 1](http://gmic.eu/gmic220/thumbs/gmic_linify.png)](http://gmic.eu/gmic220/fullsize/gmic_linify.png) [![G’MIC linify 2](http://gmic.eu/gmic220/thumbs/gmic_linify.gif)](http://gmic.eu/gmic220/fullsize/gmic_linify.gif) _Fig. 3.8 : L’effet « Linify » cherche à redessiner une image en superposant uniquement des droites colorées semi‐transparentes sur un canevas blanc._ L’effet _Artistic / Quadtree variations_ va pour sa part décomposer une image dans un premier temps en [_quadtree_](https://fr.wikipedia.org/wiki/Quadtree) (arbre quaternaire), puis la re‐synthésiser en dessinant des ellipses orientées sur un canevas initialement vide, pour chaque feuille du _quadtree_ ainsi obtenu, ce qui donne un petit effet « peinture » assez intéressant. Il est probable qu’avec des formes plus complexes que des ellipses pleines, on puisse synthétiser des rendus encore plus attrayants. Sûrement une idée à garder dans un coin du cerveau pour une prochaine mise à jour des filtres. [![G’MIC quadtree 1](http://gmic.eu/gmic220/thumbs/gmic_quadtree.png)](http://gmic.eu/gmic220/fullsize/gmic_quadtree.png) [![G’MIC quadtree 2](http://gmic.eu/gmic220/thumbs/gmic_qdellipse.gif)](http://gmic.eu/gmic220/fullsize/gmic_qdellipse.gif) _Fig. 3.9 : La décomposition d’image en quadtree permet par la suite de la re‐synthétiser en superposant uniquement des ellipses orientées et colorées._ ## 3.4. « Y en a un peu plus, je vous le mets quand même ? » Et maintenant que vous avez traité pleins de belles images, pourquoi ne pas les exposer sous la forme d’un superbe montage photo ? C’est précisément le rôle du filtre _Arrays & tiles / Drawn montage_, qui permet de créer très rapidement une juxtaposition de photographies en épousant des formes quelconques. L’idée est de fournir au filtre un patron (_template_) coloré en plus de l’ensemble des photographies (_fig. 3.10a_), puis d’associer chaque photographie à chaque couleur différente du patron (_fig. 3.10b_). L’incrustation se fait alors automatiquement par _G’MIC_, qui redimensionne les images de telle sorte qu’elles apparaissent le mieux cadré possible à l’intérieur des formes définies par le patron (_fig. 3.10c_). Nous avons réalisé [une vidéo tutorielle](https://www.youtube.com/watch?v=CxopG_DqQj4) montrant l’utilisation de ce filtre particulier. [![G’MIC drawn montage](http://gmic.eu/gmic220/thumbs/gmic_drawn_montage0.png)](http://gmic.eu/gmic220/fullsize/gmic_drawn_montage0.png) _Fig. 3.10a : Étape 1 : l’utilisateur dessine l’organisation désirée du montage avec des formes de différentes couleurs._ [![G’MIC drawn montage](http://gmic.eu/gmic220/thumbs/gmic_drawn_montage.png)](http://gmic.eu/gmic220/fullsize/gmic_drawn_montage.png) _Fig. 3.10b : Étape 2 : le filtre_ Drawn montage _de G’MIC permet ensuite d’associer une photographie à chaque couleur._ [![G’MIC drawn montage](http://gmic.eu/gmic220/thumbs/gmic_drawn_montage2.png)](http://gmic.eu/gmic220/fullsize/gmic_drawn_montage2.png) _Fig. 3.10c : Étape 3 : le montage est finalement créé de manière automatique par le filtre, qui insère les photographies dans chaque forme de couleur en adaptant la résolution de chaque photographie._ Mais revenons en à des questions plus essentielles : avez vous déjà eu besoin de dessiner des rouages ? Non ?! C’est normal, ce n’est pas quelque chose que l’on fait tous les jours ! Mais, au cas où, le filtre _Rendering / Gear_ se propose de le faire pour vous, avec différents réglages pour régler taille, couleurs et nombre de dents. Parfaitement inutile, donc totalement indispensable ! [![G’MIC drawn montage](http://gmic.eu/gmic220/thumbs/gmic_gears.png)](http://gmic.eu/gmic220/fullsize/gmic_gears.png) _Fig. 3.11 : Le filtre_ Gear _tournant à plein régime._ Besoin rapide d’une texture de satin ? Non plus ?! Dommage, car le filtre _Patterns / Satin_ aurait pu vous être d’un grand secours ! [![G’MIC satin](http://gmic.eu/gmic220/thumbs/gmic_satin.png)](http://gmic.eu/gmic220/fullsize/gmic_satin.png) _Fig. 3.12 : Le filtre_ Satin _de G’MIC vous rend la vie plus soyeuse._ Et pour finir la série de ces « effets qui ne servent à rien sauf le jour où on en a besoin », notons la venue du filtre _Degradations / JPEG artefacts_ qui simule l’apparition d’artefacts de compression JPEG due à la quantification des coefficients [DCT](https://fr.wikipedia.org/wiki/Transform%C3%A9e_en_cosinus_discr%C3%A8te "Transformée en cosinus discrète") encodant les blocs 8 ×ばつ 8 composant l’image (oui, vous obtiendrez quasiment la même chose en sauvant votre image sous forme d’un fichier JPEG de la qualité désirée). [![Simulate JPEG artefacts](http://gmic.eu/gmic220/thumbs/gmic_dct.png)](http://gmic.eu/gmic220/fullsize/gmic_dct.png) [![Simulate JPEG artefacts](http://gmic.eu/gmic220/thumbs/gmic_dct.gif)](http://gmic.eu/gmic220/fullsize/gmic_dct.gif) _Fig. 3.13 : L’effet_ JPEG artefacts _simule une dégradation d’image due à la compression DCT par bloc 8 ×ばつ 8._ # 4. Autres améliorations notables Cette revue des nouveaux filtres disponibles ne doit pas faire oublier les diverses améliorations qui ont également été apportées « sous le capot » et qui sont toutes aussi importantes, même si elles sont moins visibles en pratique. ## 4.1. Amélioration de l’interface du greffon G’MIC-Qt Un gros effort de nettoyage et de restructuration du code du greffon _G’MIC-Qt_ a été réalisé, avec pour conséquence pas mal de petits soucis réglés dans l’utilisation de l’interface graphique ([_GUI_](https://fr.wikipedia.org/wiki/Interface_graphique)). Citons également en vrac quelques nouvelles fonctionnalités ayant fait leur apparition dans ce greffon : la possibilité de régler un délai d’expiration ([_timeout_](https://en.wikipedia.org/wiki/Timeout_(computing))) lors de la prévisualisation du résultat de filtres un peu longs à calculer, une meilleure prise en compte des paramètres d’entrées‐sorties pour chaque filtre (persistance, meilleure localisation, bouton de réinitialisation), des facilités pour maximiser la taille de la fenêtre de prévisualisation, pour éditer à la main son coefficient d’agrandissement (_zoom_), ou encore pour choisir la langue de l’interface (indépendamment de la langue du système), etc. Au final, plein de petites choses qui, additionnées, améliorent progressivement l’expérience utilisateur. [![Préférences de G’MIC](http://gmic.eu/gmic220/thumbs/gmic_prefs.png)](http://gmic.eu/gmic220/fullsize/gmic_prefs.png) _Fig. 4.1 : Aperçu de l’interface du greffon G’MIC-Qt dans sa dernière mouture 2.2._ ## 4.2. Améliorations apportées au cœur de calcul Encore moins visible, mais tout aussi important, beaucoup d’améliorations sont apparues dans le code du cœur de calcul de _G’MIC_ et son interpréteur de langage de script associé. Il faut savoir que tous les filtres proposés dans le greffon sont écrits sous forme de scripts en langage _G’MIC_, et chaque petite amélioration apportée à l’interpréteur a donc une conséquence bénéfique pour l’ensemble des filtres proposés. Sans rentrer dans les détails techniques de ces améliorations internes, on peut citer pêle‐mêle : - des améliorations notables en ce qui concerne la syntaxe même du langage, allant de pair avec une meilleure performance d’analyse de cette syntaxe et, _in fine_, un temps d’exécution amélioré des scripts, pour une utilisation mémoire qui, elle, devient plus réduite ; - l’évaluateur d’expressions mathématiques intégré à _G’MIC_ connaît lui aussi quelques améliorations et nouvelles fonctionnalités, pour envisager encore plus de possibilités de codage d’algorithmes réalisant des opérations non triviales au niveau pixel ; - une meilleure prise en charge des entrées‐sorties de séquences vidéo brutes en format `.yuv` avec la prise en charge des formats `4:2:2` et `4:4:4`, en plus du format `4:2:0` qui était le seul géré auparavant ; - enfin, deux nouvelles animations ont été ajoutées au menu des démonstrations de _G’MIC_ (qui s’affiche par exemple lorsque l’on lance l’interface CLI — `gmic` sans arguments, depuis la ligne de commande) : - tout d’abord, un effet de champ d’étoiles en 3D : [![Starfield demo](http://gmic.eu/gmic220/thumbs/gmic_starfield.gif)](http://gmic.eu/gmic220/fullsize/gmic_starfield.gif) _Fig. 4.2 : Nouvelle animation_ 3D Starfield _ajoutée au menu de démonstration._ - mais aussi une version 3D jouable des [_Tours de Hanoï_](https://fr.wikipedia.org/wiki/Tours_de_Hano%C3%AF) : [![Démo Hanoi](http://gmic.eu/gmic220/thumbs/gmic_hanoi.gif)](http://gmic.eu/gmic220/fullsize/gmic_hanoi.gif) _Fig. 4.3 : La version 3D jouable des « Tours de Hanoï », disponible dans G’MIC._ - pour finir, signalons l’apparition de la commande `tensors3d` dédiée à la représentation 3D d’un [champ tensoriel](https://fr.wikipedia.org/wiki/Champ_tensoriel) d’ordre 2. Et, en pratique, ça ne sert pas qu’à donner envie de manger des _Smarties®_ ! On peut par exemple l’utiliser pour visualiser certaines régions de volumes [IRM de tenseurs de diffusion](https://fr.wikipedia.org/wiki/IRM_de_diffusion#Imagerie_du_tenseur_de_diffusion) : [![tensors3d](http://gmic.eu/gmic220/thumbs/gmic_tensors3d.png)](http://gmic.eu/gmic220/fullsize/gmic_tensors3d.png) _Fig. 4.4 : La commande_ tensors3d _permet la visualisation 3D de champs tensoriels d’ordre 2._ ## 4.3. Nouveau design pour _G’MIC Online_ Pour en finir avec le rayon des nouveautés, mentionnons également la refonte complète du service en ligne [_G’MIC Online_](https://gmicol.greyc.fr/) durant l’année 2017, réalisée par Christophe Couronne et Véronique Robert du service développement du laboratoire GREYC. _G’MIC Online_ est un service Web, qui propose d’appliquer un sous‐ensemble des filtres de _G’MIC_ sur vos images, via un navigateur Web. Ces pages ont maintenant un [design adaptatif](https://fr.wikipedia.org/wiki/Site_web_adaptatif), ce qui les rend utilisables de manière plus agréable qu’auparavant sur les appareils mobiles (_smartphones_ et tablettes), comme illustré ci‐dessous avec une copie d’écran du service lancé depuis un navigateur Chrome tournant sous Android, le tout sur une tablette de 10 pouces de diagonale. [![G’MICol](http://gmic.eu/gmic220/thumbs/gmicol.png)](http://gmic.eu/gmic220/fullsize/gmicol.png) _Fig. 4.5 : Nouvelle version adaptative du service Web_ G’MIC Online, _tournant ici sur une tablette 10"._ # 5. Conclusion et perspectives Voilà, le tour d’horizon de cette nouvelle version 2.2 de _G’MIC_ est terminé. Une conclusion pourrait être : « Il y a plein de perspectives ! ». _G’MIC_ est un projet libre que l’on peut qualifier de mature : les premières lignes de code ont été composées il y a presque dix ans, et l’on a aujourd’hui une bonne idée des possibilités (et des limites) de la bête. Nous espérons rencontrer toujours plus d’intérêt de la part des utilisateurs et développeurs libres, par exemple pour l’intégration du greffon générique _G’MIC-Qt_ dans des logiciels divers et variés de traitement d’images ou de vidéos. La possibilité d’utiliser le cœur de _G’MIC_ sous une licence _CeCILL-C_ — plus permissive — peut également être source de collaborations intéressantes dans le futur (certaines entreprises nous ont déjà approché à ce sujet). Tout en étant à l’affût de collaborations potentielles, nous allons continuer à développer _G’MIC_ dans la mesure de nos moyens et l’alimenter avec de nouveaux filtres et effets, au gré des suggestions de nos utilisateurs enthousiastes. Merci à eux pour leur aide et leurs encouragements constants (la motivation pour écrire du code ou des articles, passé 23 h, ne serait pas la même). Et en attendant une prochaine dépêche sur _G’MIC_... « Vive le traitement d'images et la création artistique libre ! »

AltStyle によって変換されたページ (->オリジナル) /