URL: https://linuxfr.org/news/g-mic-2-0-un-second-souffle-pour-le-traitement-d-images-libre Title: G’MIC 2.0 : un second souffle pour le traitement d’images libre Authors: David Tschumperlé Davy Defaud, Nils Ratusznik, ZeroHeure, Benoît Sibaud, palm123, BAud et Sylvain Berfini Date: 2017年06月01日T15:47:22+02:00 License: CC By-SA Tags: gimp, gtk, qt, g'mic et traitement_d'images Score: 136 [L’équipe _IMAGE_](https://www.greyc.fr/image) du laboratoire [_GREYC_](https://www.greyc.fr) de Caen (_UMR CNRS 6072_) est heureuse de vous annoncer la sortie d’une nouvelle version majeure (numérotée 2.0) de son projet [_G’MIC_](http://gmic.eu), un cadriciel _libre_, générique et extensible pour le [traitement des images](https://fr.wikipedia.org/wiki/Traitement_d%27images). Nous exposons ici les avancées principales réalisées sur cet ensemble d’interfaces logicielles, depuis notre [dernière dépêche](https://linuxfr.org/news/g-mic-1-7-1-quand-les-fleurs-bourgeonnent-les-filtres-d-images-foisonnent). Les nouveautés présentées ici englobent le travail réalisé ces douze derniers mois (versions 2.0.0 et 1.7._x_, pour _x_ variant de 2 à 9). ---- [Page principale du projet G’MIC](http://gmic.eu) [Fil Twitter](https://twitter.com/gmic_ip) [Le greffon pour GIMP](http://gmic.eu/gimp.shtml) [Le Web service G’MIC Online](https://gmicol.greyc.fr) [Le journal des modifications de la version 2.0.0](https://discuss.pixls.us/t/release-of-gmic-2-0-0) [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 vue d’ensemble _G’MIC_ est un projet libre ayant vu le jour en août 2008, dans l’équipe [IMAGE](https://www.greyc.fr/image) du [GREYC](https://www.greyc.fr/). Cette équipe française, composée de chercheurs et d’enseignants‐chercheurs, est spécialisée dans les domaines de l’algorithmique et des mathématiques du traitement d’images. _G’MIC_ est distribué sous licence [CeCILL](http://www.cecill.info/licences/Licence_CeCILL_V2.1-fr.txt) (compatible GPL) pour différentes plates‐formes (GNU/Linux, macOS et Windows). Il 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 couleurs « classiques »). [![logo G’MIC](http://tschumperle.users.greyc.fr/lfr4/s_logo_gmic.jpg)](http://tschumperle.users.greyc.fr/lfr4/logo_gmic.jpg) _Fig. 1.1 : Logo du projet G’MIC, cadriciel libre pour le traitement d’image, et sa mascotte Gmicky._ La popularité de G’MIC vient en majeure partie du [greffon](http://gmic.eu/gimp.shtml) qu’il propose pour le logiciel [GIMP](http://www.gimp.org), depuis 2009. À ce jour, celui‐ci dispose de plus de 480 filtres et effets différents à appliquer sur vos images, et permet donc d’enrichir considérablement les filtres de traitement livrés par défaut avec GIMP. G’MIC fournit également une interface en [ligne de commande](http://gmic.eu/reference.shtml), relativement puissante, qui peut s’utiliser de manière autonome, et qui est complémentaire aux outils en ligne de commande proposés par [ImageMagick](http://www.imagemagick.org/) ou [GraphicsMagick](http://www.graphicsmagick.org). Il existe aussi un service Web [_G’MIC Online_](https://gmicol.greyc.fr/), permettant d’appliquer des effets sur vos images directement à partir d’un navigateur. D’autres interfaces plus confidentielles basées sur G’MIC existent : l’interface de diffusion vidéo [_ZArt_](https://www.youtube.com/watch?v=k1l3RdvwHeM), un greffon pour [Krita](http://www.krita.org), un sous‐ensemble de filtres pour [Photoflow](http://photoflowblog.blogspot.com/2014/10/two-new-photoflow-features-integration.html), [Blender](https://github.com/Starfall-Robles/Blender-2-G-MIC) ou encore [Natron](https://github.com/NatronVFX/openfx-gmic/releases)... Toutes ces interfaces se basent sur les bibliothèques _C++_ [_CImg_](http://cimg.eu) et [_libgmic_](http://gmic.eu/libgmic.shtml) qui sont portables, compatibles multi‐fil d’exécution (_thread‐safe_ et _multi‐thread_), via l’utilisation d’[OpenMP](http://openmp.org/). À l’heure actuelle, G’MIC possède plus de [950 fonctions](http://gmic.eu/reference.shtml) différentes de traitement, toutes paramétrables, pour une bibliothèque de seulement 6,5 Mio, représentant un peu plus de 180 000 lignes de code source. Les fonctionnalités proposées couvrent un large spectre du traitement d’images, en proposant des algorithmes pour la manipulation géométrique, les changements colorimétriques, le filtrage d’image (débruitage, rehaussement de détails par méthodes spectrales, variationnelles, non locales...), l’estimation de mouvement et le recalage, l’affichage de primitives (2D et objets 3D maillés), la détection de contours et la segmentation, le rendu artistique, etc. C’est donc un outil très générique aux usages variés et très utile, d’une part pour convertir, visualiser et explorer des données images, et d’autre part, pour construire des _pipelines_ élaborés et des algorithmes personnalisés de traitements d’images (voir [les diapositives](http://gmic.eu/img/gmic_slides.pdf) de présentation du projet pour davantage de détails). # 2. Une nouvelle interface polyvalente, basée sur Qt La nouveauté essentielle de cette version 2.0 concerne le code du greffon, qui a été complètement repensé et réimplémenté à partir de zéro. Ce module, [_G’MIC-Qt_](https://github.com/c-koi/gmic-qt), développé par [Sébastien](https://www.greyc.fr/users/seb) (enseignant‐chercheur — expérimenté — de l’équipe), propose ainsi une refonte complète en Qt de l’interface du greffon, en étant le plus indépendant possible de l’interface logicielle et des _widgets_ de GIMP. [![Aperçu de la version 2.0 du greffon G’MIC-Qt pour GIMP](https://tschumperle.users.greyc.fr/lfr4/s_gmic_200.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_200.jpg) _Fig. 2.1 : Aperçu de la version 2.0 du greffon G’MIC-Qt pour GIMP._ Cela a plusieurs conséquences intéressantes : - Le greffon utilise ses propres _widgets_ (en Qt) et permet d’avoir une interface plus flexible et personnalisable qu’avec les _widgets_ GTK proposés par défaut pour les greffons dans l’API de GIMP : la fenêtre de prévisualisation des filtres est par exemple redimensionnable à volonté, gère le zoom à la molette de la souris, et peut être localisée à gauche ou à droite de l’interface. Un moteur de recherche de filtres par mots‐clés a été ajouté, ainsi que la possibilité de choisir entre un thème clair ou sombre. La gestion des filtres favoris a été améliorée et l’interface propose même un mode d’édition de visibilité des filtres pour une personnalisation maximale. - Le greffon définit aussi sa propre _API_, pour faciliter son intégration dans des logiciels tiers autres que _GIMP_. Pour le développeur, il s’agit en pratique d’écrire un unique fichier `host_software.cpp` implémentant les fonctions de l’API pour faire le lien entre le greffon et l’application hôte. Actuellement, le fichier [`host_gimp.cpp`](https://github.com/c-koi/gmic-qt/blob/master/src/host_gimp.cpp) réalise ce travail pour le logiciel hôte GIMP. Mais il existe désormais aussi une version _stand‐alone_ (fichier [`host_none.cpp`](https://github.com/c-koi/gmic-qt/blob/master/src/host_none.cpp)) qui propose de lancer l’interface graphique Qt du greffon en mode solo, depuis la ligne de commande (commande `gmic_qt`). - [Boudewijn Rempt](https://krita.org/en/item/author/boudewijn_rempt/), gestionnaire et développeur du projet [Krita](http://www.krita.org) a également débuté l’écriture du fichier [`host_krita.cpp`](https://github.com/c-koi/gmic-qt/blob/master/src/host_krita.cpp) pour la communication de ce greffon « nouvelle génération » avec le logiciel de peinture numérique Krita. Il s’agit à terme de remplacer le greffon G’MIC actuellement distribué avec _Krita_, qui se fait vieillissant et qui pose des problèmes de maintenance pour les développeurs. Minimiser l’effort d’intégration pour les développeurs, partager au maximum le code du greffon G’MIC_ entre différentes applications, et proposer une interface d’utilisation la plus confortable possible ont été les objectifs principaux de cette refonte complète. Comme vous vous en doutez, cette réécriture a demandé un travail long et soutenu, et nous ne pouvons qu’espérer que cela suscitera de l’intérêt chez d’autres développeurs de logiciels, où disposer d’une base conséquente de filtres de traitement d’images peut être utile (à quand un `host_blender.cpp` ? On peut rêver !). L’animation ci‐dessous illustre quelques‐unes des fonctionnalités offertes par cette nouvelle interface basée sur Qt. [![Interface de G’MIC-Qt](https://tschumperle.users.greyc.fr/lfr4/s_gmic_qt.gif)](https://tschumperle.users.greyc.fr/lfr4/gmic_qt.gif) _Fig. 2.2 : La nouvelle interface G’MIC-Qt en action._ À noter que le code de l’ancien greffon utilisant [GTK](https://www.gtk.org/) a quand même été mis à jour pour fonctionner avec la version 2.0 de G’MIC, mais possède moins de fonctionnalités et n’évoluera sans doute plus dans le futur, contrairement à la version Qt. # 3. Faciliter la vie des dessinateurs... Mais une des raisons d’être de G’MIC, c’est aussi de proposer toujours plus de filtres et de fonctions pour traiter les images. Et ça tombe bien, car dans ce domaine, nous n’avons pas non plus relâché nos efforts, malgré le nombre de filtres conséquent déjà disponible dans les versions précédentes ! Une des grandes nouveautés de cette version concerne l’apparition et l’amélioration de filtres pour l’aide à la colorisation de dessins au trait (_line‐arts_). Nous avons en effet eu la chance de recevoir au laboratoire pendant quelques jours l’artiste [David Revoy](https://www.davidrevoy.com/), bien connu des amateurs d’art et de logiciels libres de par ses contributions multiples dans ces domaines (en particulier, son _webcomic_ [_Pepper & Carrot_](https://www.peppercarrot.com/), à lire absolument !). En collaboration avec David, nous avons travaillé sur la conception d’un filtre original de colorisation automatique de dessins au trait, nommé [_Smart Coloring_](http://www.davidrevoy.com/article324/smart-coloring-preview-of-a-new-gmic-filter). [![filtre « Colorize lineart [smart coloring] »](https://tschumperle.users.greyc.fr/lfr4/s_gmic_smart_coloring.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_smart_coloring.jpg) _Fig. 3.1 : Utilisation du filtre « Colorize lineart [smart coloring] » de G’MIC._ Dans le domaine de la bande dessinée, la colorisation d’un dessin au trait se réalise en effet en deux étapes successives : Le dessin d’origine en niveaux de gris (_fig. 3.2.[1]_) est d’abord pré‐colorisé en aplats, c.‐à‐d. en attribuant une couleur unique à chaque région ou objet distinct du dessin (_fig. 3.2.[3]_). Dans un second temps, le coloriste retravaille ce pré‐coloriage, ajoutant ombres, lumières et modifiant l’ambiance colorimétrique, pour obtenir le résultat de colorisation final (_fig. 3.2.[4]_). Pratiquement, la colorisation en aplats aboutit à la création d’un nouveau calque qui ne contient que des zones de couleurs constantes par morceaux, formant ainsi une partition colorisée du plan. Ce calque est fusionné avec le _line‐art_ d’origine pour obtenir le rendu colorisé du dessin en aplats (fusion des calques en mode _multiplication_, typiquement). [![Étapes d’un processus de colorisation d’un dessin au trait](https://tschumperle.users.greyc.fr/lfr4/s_teaser.jpg)](https://tschumperle.users.greyc.fr/lfr4/teaser.jpg) _Fig. 3.2 : Étapes d’un processus de colorisation d’un dessin au trait (source : David Revoy)._ Les artistes l’avouent eux‐mêmes : la colorisation en aplats est un processus long et fastidieux, nécessitant patience et précision. Les outils « classiques » présents dans les logiciels de peinture numérique ou de retouche d’images ne rendent en effet pas cette tâche aisée. Par exemple, les outils de remplissage par croissance de région (_bucket fill_), même les plus évolués, gèrent mal les discontinuités dans les traits de dessin (_fig. 3.3.a_), et encore plus mal les traits lissés (_anti‐crénelés_). Il est alors courant que l’artiste effectue ses aplats en peignant manuellement ses couleurs avec une brosse sur un calque séparé (_fig. 3.3.b_), avec tous les problèmes de précision (notamment aux abords des traits) que cela suppose (_fig. 3.3.c_, et [_ce lien_](http://www.davidrevoy.com/article240/gmic-line-art-colorization) pour plus de détails). [![Problèmes classiques rencontrés lors de la colorisation en aplats](https://tschumperle.users.greyc.fr/lfr4/s_problemes2.jpg)](https://tschumperle.users.greyc.fr/lfr4/problemes2.jpg) _Fig. 3.3 : Problèmes classiques rencontrés lors de la colorisation en aplats (source : David Revoy)._ Il peut même arriver que l’artiste décide de contraindre explicitement son style de dessin, en utilisant par exemple des lignes crénelées en résolution supérieure (plutôt que des lignes anti‐crénelées), et/ou en se forçant à ne tracer que des traits sans « trous », pour faciliter le travail de colorisation du préparateur d’aplats. Le filtre _Smart Coloring_ que nous avons développé dans la version 2.0 de G’MIC permet de pré‐coloriser un dessin au trait donné en entrée, d’une part à partir d’une analyse de la géométrie locale des traits de crayon (normales et courbures) et, d’autre part, par leur complétion automatique par des courbes [_splines_](https://fr.wikipedia.org/wiki/Spline). Cela autorise une fermeture (virtuelle) et un remplissage d’objets pouvant contenir des discontinuités dans les tracés de leurs contours. Ce filtre a de plus l’avantage d’être rapide en temps de calcul et donne des résultats de colorisation de qualité similaire à des techniques d’optimisation plus coûteuses, utilisées dans certains logiciels propriétaires. L’algorithme que nous avons élaboré gère sans problème les traits anti‐crénelés, et propose deux modes de colorisation en aplats : par couleurs aléatoires (_fig. 3.2.[2]_ et _fig. 3.4_) ou guidée par des marqueurs de couleur placés au préalable par l’utilisateur (_fig. 3.5_). [![filtre « Smart Coloring » en mode couleurs aléatoires](https://tschumperle.users.greyc.fr/lfr4/rain.gif)](https://tschumperle.users.greyc.fr/lfr4/rain.gif) _Fig. 3.4 : Utilisation du filtre « Smart Coloring » en mode couleurs aléatoires, pour la colorisation d’un dessin au trait (source : David Revoy)._ En mode _couleurs aléatoires_, le filtre génère un calque d’aplats qu’il est très facile de recoloriser par la suite avec de « bonnes » couleurs. Ce calque contient en effet uniquement des régions de couleurs constantes, et l’outil de remplissage classique (_bucket fill_) est ici efficace pour réassigner rapidement une couleur cohérente à chaque région existante colorisée aléatoirement par l’algorithme. En mode _marqueurs de couleurs_, les couleurs placées par l’utilisateur sont extrapolées de façon à respecter au mieux la géométrie du dessin, notamment avec la prise en compte des discontinuités dans les traits de crayon, comme on peut le voir très clairement sur l’exemple ci‐dessous : [![Utilisation du filtre « Smart Coloring » en mode guidage par marqueurs de couleurs](https://tschumperle.users.greyc.fr/lfr4/girl_colorization.gif)](https://tschumperle.users.greyc.fr/lfr4/girl_colorization.gif) _Fig. 3.5 : Utilisation du filtre « Smart Coloring » en mode guidage par marqueurs de couleurs, pour la colorisation d’un dessin au trait (source : David Revoy)._ Cet algorithme innovant de colorisation en aplats a fait l'objet d’une pré‐publication sur _HAL_ : [_Un algorithme semi‐guidé performant de colorisation en aplats pour le dessin au trait_](https://hal.archives-ouvertes.fr/hal-01490269). Les plus curieux y trouveront tous les détails techniques de la méthode utilisée. Les discussions récurrentes que nous avons eues avec David Revoy sur l’élaboration de ce filtre nous ont permis d’améliorer l’algorithme petit à petit, jusqu’à ce qu’il devienne réellement utilisable en production. Cette méthode a pu être ainsi utilisée avec succès, et donc validée, pour la pré‐colorisation de tout [l’épisode 22](https://www.peppercarrot.com/en/article412/episode-22-the-voting-system) du _webcomic_ _Pepper & Carrot_. Les plus avisés pourraient nous dire que G’MIC possédait déjà un [filtre de colorisation de dessins](http://www.davidrevoy.com/article240/gmic-line-art-colorization) ! C’est vrai, mais celui‐ci ne gérait malheureusement pas très bien les dessins avec des traits discontinus (tels que celui présenté en _fig. 3.5_), et pouvait alors nécessiter de la part de l’utilisateur le placement d’un grand nombre de marqueurs couleur pour guider correctement l’algorithme. La performance de ce nouvel algorithme est en pratique bien supérieure. Et puisque ce nouveau filtre d’aide à la colorisation ne voit pas d’objection aux traits anti‐crénelés, pourquoi s’en priver ? Justement, un autre filtre _Repair / Smooth [antialias]_ a également fait son apparition pour ajouter de l’anti‐crénelage à des traits de dessin qui seraient à l’origine trop crénelés. [![Le filtre « Smooth [antialias] »](https://tschumperle.users.greyc.fr/lfr4/s_gmic_antialiasing.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_antialiasing.jpg) _Fig. 3.6 : Le filtre « Smooth [antialias] » peut supprimer le crénelage éventuel de traits de dessins (source : David Revoy)._ # 4. ...Sans oublier les photographes ! « _Coloriser des dessins, c’est bien gentil, mais mes photos à moi sont déjà en couleurs !_ », nous fait gentiment remarquer le photographe impatient. Pas de souci ! De nombreux filtres relatifs à la transformation et l’amélioration de photos ont également fait leur apparition dans G’MIC 2.0. Faisons un petit tour du propriétaire. ## 4.1. CLUT et transformations colorimétriques Les [CLUT](http://www.quelsolaar.com/technology/clut.html) (_Color Lookup Tables_) sont des fonctions de transformations colorimétriques définies dans le cube RVB (rouge, vert et bleu) : pour chaque couleur source d’une image _Imgs_ définie par un triplet _(Rs, Vs, Bs)_, une CLUT lui associe une nouvelle couleur _(Rd, Vd, Bd)_ que l’on reporte dans une image destination _Imgd_ aux mêmes positions. Ces fonctions de transformation pouvant être vraiment quelconques, on peut obtenir des effets très différents suivant les CLUT utilisées, et les photographes en sont donc généralement friands (d’autant que ces CLUT sont un bon moyen de simuler le rendu couleur de certains vieux films argentiques). En pratique, on stocke une CLUT comme une image volumique couleur (éventuellement « déroulée » suivant l’axe _z = B_ pour en obtenir [une version 2D](http://gmic.eu/film_emulation/various/clut/golden.png)), ce qui peut vite devenir encombrant lorsque l’on doit gérer plusieurs centaines de CLUT. Heureusement, G’MIC possède un algorithme de compression spécifique de CLUT assez efficace (déjà mentionné dans [une précédente dépêche _LinuxFr.org_](http://linuxfr.org/news/g-mic-1-7-1-quand-les-fleurs-bourgeonnent-les-filtres-d-images-foisonnent#22-reconstruction-de-donn%C3%A9es-manquantes-%C3%A0-partir-d%C3%A9chantillons-%C3%A9pars)), qui a été amélioré au fil des versions. Et c’est donc en toute décontraction que nous avons pu ajouter plus de **60** nouvelles transformations colorimétriques basées CLUT dans G’MIC, pour un total de **359** CLUT utilisables, toutes stockées dans un fichier de données qui pèse à peine 1,2 Mio ! Remercions en passant [Marc Roovers](http://www.digicrea.be/haldclut-set-style-a-la-nik-software) et [Stuart Sowerby](http://blog.sowerby.me/fuji-film-simulation-profiles/) pour leurs contributions à ces nouvelles transformations. [![Nouvelles transformations colorimétriques de G’MIC](https://tschumperle.users.greyc.fr/lfr4/s_a891743705fd011bebe68b1f88e2f0b90fddbdb1.jpg)](https://tschumperle.users.greyc.fr/lfr4/a891743705fd011bebe68b1f88e2f0b90fddbdb1.jpg)_ Fig. 4.1.1 : Quelques‐unes des nouvelles transformations colorimétriques disponibles dans G’MIC (source : Pat David)._ Mais que faire si nous disposons déjà de nos propres fichiers CLUT et que nous voulons les utiliser dans GIMP ? Aucun problème ! Le filtre tout frais _Film emulation / User‐defined_ vous permet d’appliquer de telles transformations, avec même une prise en charge des fichiers à extension `.cube` ([format de fichiers CLUT](http://wwwimages.adobe.com/content/dam/Adobe/en/products/speedgrade/cc/pdfs/cube-lut-specification-1.0.pdf) proposé par Adobe et encodé en ASCII `o_O` !). Et les plus exigeants, qui ne trouveraient pas leur bonheur dans les CLUT déjà présentes, peuvent dorénavant construire leur propre CLUT personnalisée, grâce au filtre _Colors / Customize CLUT_ disponible dans le greffon. Ce filtre, très polyvalent, permet de placer des points clefs colorés dans le cube RVB, points qui seront interpolés en 3D par la suite (suivant une [triangulation de Delaunay](https://fr.wikipedia.org/wiki/Triangulation_de_Delaunay)), pour reconstruire une CLUT complète, c.‐à‐d. une fonction dense dans _RGB_. Toutes les fantaisies sont alors permises, comme dans l’exemple ci‐dessous, où le filtre est utilisé pour changer l’ambiance colorimétrique d’un paysage, en modifiant principalement la couleur du ciel. La CLUT ainsi synthétisée peut être, bien sûr, sauvegardée sous forme de fichier et réutilisée plus tard pour d’autres photographies, ou même dans d’autres logiciels prenant en charge ce type de transformations colorimétriques ([RawTherapee](http://rawpedia.rawtherapee.com/Film_Simulation) ou [Darktable](http://www.darktable.org/2016/05/colour-manipulation-with-the-colour-checker-lut-module/), par exemple). [![Le filtre « Customize CLUT »](https://tschumperle.users.greyc.fr/lfr4/s_gmic_custom_clut.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_custom_clut.jpg) _Fig. 4.1.2 : Création d’une transformation colorimétrique personnalisée avec le filtre « Customize CLUT »._ [![Résultat de la transformation colorimétrique personnalisée appliquée sur un paysage](https://tschumperle.users.greyc.fr/lfr4/coast.gif)](https://tschumperle.users.greyc.fr/lfr4/coast.gif) _Fig. 4.1.3 : Résultat de la transformation colorimétrique personnalisée appliquée sur un paysage._ Toujours pour rester dans des modifications relatives aux couleurs, notons aussi l’apparition du filtre _Colors / Retro fade_ qui créé un rendu « rétro » d’une image avec du grain généré par moyennages successifs de quantifications aléatoires d’une image d’entrée. [![Le filtre « Retro fade »](https://tschumperle.users.greyc.fr/lfr4/s_gmic_retrofade.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_retrofade.jpg) _Fig. 4.1.4 : Le filtre « Retro fade » du greffon G’MIC._ ## 4.2. Faire ressortir les détails De nombreux photographes cherchent des moyens de traiter leurs photographies numériques de façon à faire ressortir les moindres détails de leurs images, parfois même jusqu’à l’exagération. On en croise notamment sur [_Pixls.us_](https://pixls.us/), site récent spécialisé dans les techniques de photographie utilisant uniquement des projets libres. Et c’est en collaboration avec ceux‐ci, que plusieurs nouveaux filtres de rehaussement de détails et de contraste ont été ajoutés dans G’MIC. On peut citer notamment les filtres _Artistic / Illustration look_ et _Artistic / Highlight bloom_, ré‐implémentations directes des tutoriels et des scripts rédigés par [Sébastien Guyader](https://discuss.pixls.us/t/highlight-bloom-and-photoillustration-look), ainsi que le filtre _Light & Shadows / Pop shadows_ suggéré par [Morgan Hardwood](https://discuss.pixls.us/t/easy-tone-mapping-in-gimp-with-reduced-fat-cheese). Être immergé dans une telle communauté de photographes donne sans cesse des opportunités de création de nouveaux effets ! [![Filtres « Illustration look » et « Highlight bloom »](https://tschumperle.users.greyc.fr/lfr4/girl_hbloom.gif)](https://tschumperle.users.greyc.fr/lfr4/girl_hbloom.gif) _Fig. 4.2.1 : Filtres « Illustration look » et « Highlight bloom » appliquées sur une image de portrait._ Dans la même veine, G’MIC se dote de sa propre implémentation de l’algorithme de [Retinex multi‐échelle](http://www.ipol.im/pub/art/2014/107), dont une version était [déjà présente](https://docs.gimp.org/fr/plug-in-retinex.html) dans GIMP, mais qui se trouve ici enrichie avec des possibilités de contrôle supplémentaires, pour améliorer la cohérence de la luminosité dans les images. [![Filtre « Retinex »](https://tschumperle.users.greyc.fr/lfr4/s_501f32dbfcfefd9a761162a50fead5ca33e47bdb.jpg)](https://tschumperle.users.greyc.fr/lfr4/501f32dbfcfefd9a761162a50fead5ca33e47bdb.jpg) _Fig. 4.2.2 : Filtre « Retinex » pour uniformiser la luminosité dans une image._ Notre ami et grand contributeur de G’MIC, [Jérome Boulanger](http://www.irisa.fr/vista/Equipe/People/Jerome.Boulanger.english.html), a également implémenté et ajouté un algorithme d’atténuation de l’effet de brouillard dans les images (_Dehazing_), basé sur la méthode du [_Dark Channel Prior_](http://mmlab.ie.cuhk.edu.hk/archive/2011/Haze.pdf). Le réglage des paramètres de ce filtre n’est pas toujours aisé, mais il donne parfois des résultats très intéressants. [![Filtre « DCP Dehaze »](https://tschumperle.users.greyc.fr/lfr4/s_gmic_dehaze.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_dehaze.jpg) [![Filtre « DCP Dehaze »](https://tschumperle.users.greyc.fr/lfr4/dehaze.gif)](https://tschumperle.users.greyc.fr/lfr4/dehaze.gif) _Fig. 4.2.3 : Filtre « DCP Dehaze » pour l’atténuation de l’effet de brouillard dans une image._ Pour terminer cette sous‐section, notons également l’implémentation dans G’MIC de l’algorithme de [_Rolling Guidance_](http://www.cse.cuhk.edu.hk/leojia/projects/rollguidance/), qui permet de simplifier des images et qui est devenu une brique de base utilisée dans de nombreux filtres récemment ajoutés. C’est le cas notamment pour cette méthode épatante de rehaussement de contours ([_Sharpening_](https://en.wikipedia.org/wiki/Image_editing#Sharpening_and_softening_images)), que vous pourrez trouver dans _Details / Sharpen [texture]_, et qui se réalise en deux étapes successives. D’abord l’image est séparée en une composante _texture_ + une composante _couleur_, puis on rehausse les détails de la composante _texture_ uniquement, avant de recomposer l’image. Cette façon de procéder permet de bien faire ressortir tous les petits détails de l’image, tout en minimisant la création de halos disgracieux près des contours, problème récurent rencontré avec la plupart des méthodes de rehaussement de détails plus classiques (tel que le bien connu [_Unsharp Mask_](https://fr.wikipedia.org/wiki/Masque_flou)). [![Le filtre « Sharpen [texture] »](https://tschumperle.users.greyc.fr/lfr4/lion_sharpen.gif)](https://tschumperle.users.greyc.fr/lfr4/lion_sharpen.gif) _Fig. 4.2.4 : Le filtre « Sharpen [texture] » illustré pour deux amplitudes différentes de rehaussement de détails._ ## 4.3. Masquage par sélection de couleurs Il existe une multitude de techniques de retouche numérique de photographies se basant sur la création au préalable d’un ou plusieurs « masques », c.‐à‐d. des zones spécifiques de l’image qui vont recevoir des traitements différenciés. Par exemple, la technique très courante des [masques de luminosité](http://retoquephotographique.blogspot.com/2009/03/le-masque-de-luminosite.html) permet de traiter différemment les zones d’ombre et de lumière dans une photographie. G’MIC 2.0 se dote d’un nouveau filtre _Colors / Color mask [interactive]_, implémentant un algorithme relativement rusé (quoique coûteux en temps de calcul) d’aide à la création de masques. Ce filtre demande à l’utilisateur de passer sa souris au‐dessus de quelques points représentatifs des régions qu’il souhaite isoler. L’algorithme apprend en temps réel les couleurs ou les luminosités correspondantes et en déduit l’ensemble des pixels qu’il doit conserver dans l’image entière (par [analyse en composante principale](https://fr.wikipedia.org/wiki/Analyse_en_composantes_principales) sur les échantillons RVB), pour la construction rapide d’un masque global. Une fois le masque généré par ce filtre, l’utilisateur peut modifier les pixels correspondants avec tout type de traitement. L’exemple ci‐dessous illustre l’utilisation de ce filtre pour modifier radicalement la couleur d’une voiture (l’opération se réalise en moins d’une minute trente ! Voir [la vidéo](https://www.youtube.com/watch?v=fmvGRAnKJgs) correspondante). Une [autre vidéo](https://www.youtube.com/watch?v=K2nkbkqYquc) expose une technique identique pour modifier la couleur du ciel dans un paysage. [![filtre « Color mask [interactive] »](https://tschumperle.users.greyc.fr/lfr4/car_hue2.gif)](https://tschumperle.users.greyc.fr/lfr4/car_hue2.gif) _Fig. 4.3.1 : Modification de la couleur d’une voiture à l’aide du filtre « Color mask [interactive] »._ # 5. Et pour les autres... Les dessinateurs et les photographes étant maintenant rassurés, passons à d’autres types de traitements, récemment ajoutés à G’MIC, à usage plus exotique, mais qui restent néanmoins intéressants ! ## 5.1. Moyenne et médiane d’une série d’images Vous êtes vous déjà demandé comment calculer facilement l’image moyenne ou médiane d’une série d’images d’entrée ? Le photographe [Pat David](https://patdavid.net/), _aficionado_ du Libre (il est le créateur du site [_Pixls.us_](https://pixls.us/)), s’est, quant à lui, souvent posé la question. Tout d’abord pour tenter de débruiter ses images, [en combinant plusieurs clichés d’une même scène](https://patdavid.net/2013/05/noise-removal-in-photos-with-median_6.html). Puis, [pour simuler un temps d’exposition plus long](https://patdavid.net/2013/09/faking-nd-filter-for-long-exposure.html) par moyennage de photographies prises à des instants successifs. Et enfin, en calculant des moyennes d’images diverses et variées à des fins artistiques (par exemple, des trames de [clips vidéo musicaux](https://patdavid.net/2013/12/mean-averaged-music-videos-g.html), l’ensemble des [couvertures de _Playboy_](https://patdavid.net/2012/08/imagemagick-average-blending-files.html), ou encore des [portraits de célébrités](https://patdavid.net/2012/08/more-averaging-photos-martin-schoeller.html)). C’est donc avec sa bénédiction que nous avons ajouté les commandes `-median_files`, `-median_videos`, `-average_files` et `-average_videos` pour réaliser toutes ces choses très simplement, à partir de l’interface en ligne de commande `gmic` de G’MIC. L’exemple ci‐dessous illustre le résultat de ces commandes appliquées sur une portion de la vidéo de [_Big Buck Bunny_](https://peach.blender.org/). Nous avons tout simplement invoqué les commandes suivantes depuis Bash : ``` $ gmic -average_video bigbuckbunny.mp4 -normalize 0,255 -o average.jpg $ gmic -median_video bigbuckbunny.mp4 -normalize 0,255 -o median.jpg ``` [![Big Buck Bunny](https://tschumperle.users.greyc.fr/lfr4/s_bbb.gif)](https://tschumperle.users.greyc.fr/lfr4/bbb.gif)_ Fig. 5.1.1 : Portion de la vidéo de_ Big Buck Bunny, _réalisée par la fondation Blender._ [![Big Buck Bunny](https://tschumperle.users.greyc.fr/lfr4/s_bbb_avg.jpg)](https://tschumperle.users.greyc.fr/lfr4/bbb_avg.jpg) _Fig. 5.1.2 : Résultat : Image moyenne de la séquence de_ Big Buck Bunny _ci‐dessus._ [![Big Buck Bunny](https://tschumperle.users.greyc.fr/lfr4/s_bbb_median.jpg)](https://tschumperle.users.greyc.fr/lfr4/bbb_median.jpg) _Fig. 5.1.3 : Résultat : Image médiane de la séquence de_ Big Buck Bunny _ci‐dessus._ En restant dans le domaine du traitement vidéo, remarquons également l’apparition des commandes `-morph_files` et `-morph_video` permettant de calculer des interpolations temporelles de séquences vidéo prenant en compte le mouvement des objets dans les séquences, grâce à un algorithme variationnel et multi‐échelle ’estimation de mouvement intra‐trames. La [vidéo visible sur YouTube](https://www.youtube.com/watch?v=rjfo5gi5XOs) illustre la différence de rendu pour le recalage d’une séquence, entre une interpolation temporelle utilisant ou non l’estimation du mouvement. ## 5.2. Déformations et « Glitch Art » Ceux qui aiment maltraiter leurs images encore plus agressivement seront ravis d’apprendre qu’un tas de nouveaux effets de déformations et de dégradations d’image sont apparus dans G’MIC. Tout d’abord, le filtre _Deformations / Conformal maps_, qui permet de déformer vos images par des [transformations conformes](https://fr.wikipedia.org/wiki/Transformation_conforme). Ces déformations ont la propriété de préserver localement les angles, et sont le plus souvent exprimées par des fonctions utilisant des nombres complexes. En plus de jouer avec des déformations prédéfinies, ce filtre permet aux matheux en herbe d’expérimenter en spécifiant leurs propres formules complexes, si besoin est. [![Filtre « Conformal maps » sur la Joconde](https://tschumperle.users.greyc.fr/lfr4/s_gmic_conformalmaps.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_conformalmaps.jpg) _Fig. 5.2.1 : Filtre « Conformal maps » appliquant une transformation conforme à l’image de la Joconde._ Les amateurs de [_Glitch Art_](https://fr.wikipedia.org/wiki/Glitch_art) pourront être également concernés par plusieurs nouveaux traitements dont le rendu fait furieusement penser à des artefacts ou des bogues d’encodage ou de compression d’images. Tout d’abord, l’effet _Degradations / Pixel sort_ qui se permet de trier les pixels d’une image par ligne ou par colonne suivant différents critères et sur des régions éventuellement masquées, tel que cela a été proposé et décrit sur [_cette page_](http://satyarth.me/articles/pixel-sorting/). [![Filtre « Pixel sort »](https://tschumperle.users.greyc.fr/lfr4/girl_sorted.jpg)](https://tschumperle.users.greyc.fr/lfr4/girl_sorted.jpg) _Fig. 5.2.2 : Filtre « Pixel sort » pour un rendu de type « Glitch Art » du plus bel effet !_ Mais aussi avec ses deux petits frères, les filtres _Degradations / Flip & rotate blocs_ et _Degradations / Warp by intensity_. Le premier permet de diviser une image en blocs et de tourner ou inverser ces blocs (façon « mirroir ») en ne le faisant potentiellement que pour certaines caractéristiques couleur de l’image (teinte ou saturation par exemple). [![Filtre « Flip & rotate blocs »](https://tschumperle.users.greyc.fr/lfr4/s_gmic_flip.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_flip.jpg) _Fig. 5.2.3 : Filtre « Flip & rotate blocs » appliqué uniquement sur la teinte afin d’obtenir des artefacts de couleurs façon « Glitch Art »._ Le deuxième s’amuse à déformer localement une image plus ou moins fortement en fonction des informations données par sa géométrie locale et, là aussi, permet de générer des images étranges, mais pouvant être appréciées des amateurs de _Glitch Art_. [![Filtre « Warp by intensity »](https://tschumperle.users.greyc.fr/lfr4/s_gmic_warp.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_warp.jpg) _Fig .5.2.4 : Filtre « Warp by intensity » appliqué sur l’image de la Joconde (pauvre Joconde !)._ Il faut préciser que ces filtres‐là ont été très largement inspirés par le greffon [_Polyglitch_](http://forums.getpaint.net/index.php?/topic/30276-glitch-effect-plugin-polyglitch-v14b/) disponible pour [_Paint.NET_](https://www.getpaint.net/), et réalisés après une suggestion d’un sympathique utilisateur (oui, oui, on essaye d’écouter nos utilisateurs les plus sympathiques !). ## 5.3. Simplification d’image Qu’avons‐nous d’autre en réserve ? Ah oui ! Un nouveau filtre d’abstraction d’image, baptisé _Artistic / Sharp abstract_ et basé sur l’algorithme du _Rolling Guidance_ déjà évoqué précédemment. Ce filtre applique un lissage à préservation de contours sur une image, et a pour effet principal de supprimer sa texture. La figure ci‐dessous illustre son utilisation pour générer plusieurs niveaux d’abstraction d’une même image, à différentes échelles de lissage. [![Abstraction d’images via le filtre « Sharp abstract »](https://tschumperle.users.greyc.fr/lfr4/lion_abstract.gif)](https://tschumperle.users.greyc.fr/lfr4/lion_abstract.gif) _Fig. 5.3.1 : Abstraction d’images via le filtre « Sharp abstract »._ Dans le même genre, G’MIC_ voit également débarquer _Artistic / Posterize_, un effet de [postérisation](https://fr.wikipedia.org/wiki/Posterisation) d’image. Contrairement au filtre de postérisation livré par défaut dans GIMP, qui essaye principalement de réduire le nombre de couleurs (et qui s’apparente donc plus à un processus de [quantification](https://fr.wikipedia.org/wiki/Quantification_(signal)), notre version ajoute des traitements de simplification des informations spatiales de l’image pour s’approcher un peu plus d’un rendu de type « vieux poster ». [![Comparaison des filtres « Posterize » de G’MIC et de GIMP](https://tschumperle.users.greyc.fr/lfr4/tiger_posterize.gif)](https://tschumperle.users.greyc.fr/lfr4/tiger_posterize.gif) _Fig. 5.3.2 : Filtre « Posterize » de G’MIC et comparaison avec le filtre du même nom disponible par défaut dans GIMP._ ## 5.4. Et en vrac... Si vous n’êtes toujours pas rassasiés (et dans ce cas, on peut dire que vous êtes sacrément gourmands !), nous finissons cette section en extirpant en vrac de nos cartons quelques autres effets nouvellement implémentés. À commencer par ce filtre _Artistic / Diffusion tensors_, qui affiche un champ de tenseurs de diffusion, calculés à partir des tenseurs de structure d’une image (les tenseurs de structure étant des matrices symétriques et définies positives, classiquement utilisés pour l’estimation de la géométrie locale des structures). Pour être tout à fait honnête, cette fonctionnalité n’avait pas été développée originellement dans un but artistique, mais des utilisateurs du greffon sont tombés dessus un peu par hasard et nous ont demandé d’en faire un filtre pour GIMP, dont acte. Et ma foi, c’est vrai que c’est plutôt joli, non ? [![Filtre « Diffusion tensors »](https://tschumperle.users.greyc.fr/lfr4/s_26ec897bf8cee6af17b4af60c1ec8a22309d797e.jpg)](https://tschumperle.users.greyc.fr/lfr4/26ec897bf8cee6af17b4af60c1ec8a22309d797e.jpg) _Fig. 5.4.1 : Le filtre « Diffusion tensors » et sa multitude d’ellipses multicolores._ D’un point de vue technique, ce filtre a été en réalité l’occasion d’introduire de nouvelles fonctionnalités de dessin de primitives à l’intérieur de l’évaluateur d’expressions mathématiques de G’MIC, et il est devenu maintenant assez facile de développer ses commandes de visualisation personnalisées pour des données image diverses et variées. C’est ce qui a été fait par exemple avec la commande `-display_quiver`, réimplémentée de zéro, et qui permet de générer ce type de rendu : [![Rendu de champs de vecteurs par la commande « -display_quiver »](https://tschumperle.users.greyc.fr/lfr4/s_b99e02c28583b00e3f8bd12e6b99b09b9dfe1a41.jpg)](https://tschumperle.users.greyc.fr/lfr4/b99e02c28583b00e3f8bd12e6b99b09b9dfe1a41.jpg) _Fig. 5.4.2 : Rendu de champs de vecteurs par la commande `-display_quiver`._ Pour les amateurs de textures, nous pouvons mentionner l’arrivée de deux nouveaux effets amusants : D’abord, le filtre _Patterns / Camouflage_ qui, comme son nom le suggère, produit une texture de type « camouflage » militaire. [![Le filtre « Camouflage »](https://tschumperle.users.greyc.fr/lfr4/s_gmic_camouflage.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_camouflage.jpg) _Fig. 5.4.3 : Le filtre « Camouflage », à imprimer sur vos T‐shirts pour passer inaperçu en soirée !_ Et dans le même genre, le filtre _Patterns / Crystal background_ superpose plusieurs polygones colorés aléatoires pour synthétiser une texture faisant vaguement penser à du cristal vu à la loupe. Plutôt sympa quand on veut obtenir rapidement des fonds d’images pas trop ternes. [![Le filtre « Crystal background »](https://tschumperle.users.greyc.fr/lfr4/s_gmic_crystal.jpg)](https://tschumperle.users.greyc.fr/lfr4/gmic_crystal.jpg) _Fig. 5.4.4 : Le filtre « Crystal background » en action._ Et nous finirons ce tour d’horizon des nouveaux traitements apparus depuis l’an dernier avec l’effet _Rendering / Barnsley fern_, qui trace un rendu de la fractale [Barnsley fern](https://en.wikipedia.org/wiki/Barnsley_fern). Pour les curieux, notons que l’algorithme de génération de cette figure fractale notoire est disponible sur [_Rosetta Code_](https://rosettacode.org/wiki/Barnsley_fern#G.27MIC), avec même une version du code écrite en langage de script G’MIC, à savoir : ```c++ # Put this into a new file 'fern.gmic' and invoke it from the command line, like this: # $ gmic fern.gmic -barnsley_fern barnsley_fern : 1024,2048 -skip {" f1 = [ 0,0,0,0.16 ]; g1 = [ 0,0 ]; f2 = [ 0.2,-0.26,0.23,0.22 ]; g2 = [ 0,1.6 ]; f3 = [ -0.15,0.28,0.26,0.24 ]; g3 = [ 0,0.44 ]; f4 = [ 0.85,0.04,-0.04,0.85 ]; g4 = [ 0,1.6 ]; xy = [ 0,0 ]; for (n = 0, n<2e6, ++n, r = u(100); xy = r<=1?((f1**xy)+=g1): r<=8?((f2**xy)+=g2): r<=15?((f3**xy)+=g3): ((f4**xy)+=g4); uv = xy*200 + [ 480,0 ]; uv[1] = h - uv[1]; I(uv) = 0.7*I(uv) + 0.3*255; )"} -r 40%,40%,1,1,2 ``` Et voici le rendu que cette fonction génère : [![fractale « Barnsley fern » calculé par G’MIC](https://tschumperle.users.greyc.fr/lfr4/s_3750f17a2859f582ce40c21475d886bb9295d19f.jpg)](https://tschumperle.users.greyc.fr/lfr4/3750f17a2859f582ce40c21475d886bb9295d19f.jpg) _Fig. 5.4.5 : Rendu de la fractale « Barnsley fern » calculé par G’MIC._ # 6. Autres informations générales Bien évidemment, les filtres qui ont été présentés tout au long de cette dépêche ne constituent que la partie émergée de l’iceberg G’MIC. Ils sont en réalité le résultat de nombreux développements et améliorations effectués « sous le capot », c.‐à‐d. directement sur le code de l’interpréteur du [langage de script](http://gmic.eu/reference.shtml) que G’MIC définit, et qui sert _in fine_ de base à l’écriture de tous les filtres et commandes disponibles pour les utilisateurs. Durant cette année écoulée, un gros travail a donc été réalisé pour améliorer les performances et les possibilités de cet interpréteur : - l’évaluateur d’expressions mathématiques a été considérablement enrichi et optimisé, avec toujours plus de fonctions disponibles (particulièrement pour le calcul matriciel), la gestion des chaînes de caractères, l’introduction de variables `const` pour une plus grande rapidité d’évaluation, la possibilité d’écrire des macros [variadiques](https://fr.wiktionary.org/wiki/variadique), ou encore d’allouer des vecteurs de manière dynamique, etc. ; - de nouvelles optimisations ont également été introduites dans la bibliothèque [CImg](http://cimg.eu), avec notamment la parallélisation de nouvelles fonctions (via l’utilisation d’[OpenMP](https://fr.wikipedia.org/wiki/OpenMP)). Cette bibliothèque _C++_ fournit les implémentations des traitements d’images « critiques » et son optimisation a donc des répercussions directes sur les performances de G’MIC (à ce propos, notons que CImg passe également en version majeure 2.0) ; - la compilation de G’MIC sous Windows utilise maintenant une version de `g++` récente (la 6.2 plutôt que la 4.5), ce qui se traduit par un impact énorme sur les performances des exécutables compilés ; certains filtres s’exécutent jusqu’à 60 fois plus rapidement qu’avec les binaires générés précédemment (c’est le cas, par exemple, pour le filtre _Deformations / Conformal Maps_, évoqué en section 5.2) ; - la prise en compte des images `.tiff` de grande dimension (format [BigTIFF](http://www.awaresystems.be/imaging/tiff/bigtiff.html), avec des fichiers dont la taille peut dépasser les 4 Gio) est maintenant opérationnelle en lecture et écriture, tout comme celle des images TIFF à valeurs flottantes sur 64 bits ; - le moteur de rendu d’objets 3D maillés intégré à G’MIC a également été amélioré, avec la prise en charge du [_bump mapping_](https://fr.wikipedia.org/wiki/Placage_de_relief) ; aucun filtre n’utilise actuellement cette fonctionnalité, mais sait‐on jamais, on se prépare pour la suite ! [![Comparaison du rendu avec et sans « Bump mapping »](https://tschumperle.users.greyc.fr/lfr4/s_d135157095b38133d1b25bea7ef97a56099a2fad.jpg)](https://tschumperle.users.greyc.fr/lfr4/d135157095b38133d1b25bea7ef97a56099a2fad.jpg) _Fig. 6.1 : Comparaison du rendu texturé avec (à droite) et sans « Bump mapping » (à gauche)._ - et comme il est toujours bon de se détendre après une dure journée de travail, nous avons ajouté le jeu du [Puissance 4](https://fr.wikipedia.org/wiki/Puissance_4) à G’MIC ! Il est accessible via la commande shell ```gmic -x_connect4``` ou en passant par le greffon, via le filtre _Various / Games & demos / Connect-4_. À noter qu’il est possible de jouer contre l’ordinateur, qui a un niveau décent mais pas imbattable non plus (l’IA, très simple, utilise l’[algorithme Minimax](https://fr.wikipedia.org/wiki/Algorithme_minimax) avec un arbre de décisions à deux niveaux seulement). [![Le jeu « Puissance 4 »](https://tschumperle.users.greyc.fr/lfr4/gmic_connect4.gif)](https://tschumperle.users.greyc.fr/lfr4/e23f0c741c04da1fd5d2dcc95f43447fbc536f5f.gif) _Fig. 6.2 : Le jeu du « Puissance 4 », jouable dans G’MIC._ Et pour en finir avec le rayon des nouveautés, mentionnons le travail en cours de refonte du service Web _G’MIC Online_, avec une [version bêta](https://gm’col.greyc.fr/beta) en cours de développement. Ce re‐développement du site, réalisé par [Christophe Couronne](https://www.greyc.fr/users/couronne), chapeauté par [Véronique Robert](https://www.greyc.fr/users/robertv) (tous deux également membres du laboratoire _GREYC_), a été étudié pour mieux s’adapter aux appareils mobiles, et les premiers tests sont plus qu’encourageants. N’hésitez pas à expérimenter et nous faire part de vos impressions ! # 7. La suite ? Que retenir de cette looooooongue dépêche ? D’abord que cette version 2.0 représente effectivement une étape importante dans la vie du projet G’MIC, et que les améliorations réalisées ces derniers mois sont de bon augure pour les développements futurs. Il semble que les utilisateurs soient de plus en plus nombreux (et apparemment satisfaits), et nous espérons que cela incitera d’autres développeurs à déployer notre nouvelle interface G’MIC-Qt comme greffon pour leurs propres logiciels libres. En particulier, on a bon espoir de voir tourner le nouveau G’MIC sous Krita prochainement, et ce serait déjà une étape formidable ! Ensuite, que ce projet libre continue d’être actif et d’évoluer au fil des rencontres et des discussions avec les membres des communautés d’artistes et de photographes, qui peuplent en particulier les forums et IRC de [_Pixls.us_](https://discuss.pixls.us/) et de [GimpChat](http://gimpchat.com/). Vous avez de grandes chances de nous y retrouver si vous désirez de plus amples informations ou simplement discuter de choses relatives au traitement d’images (libre de préférence). On tient, bien sûr, à remercier les contributeurs du projet, que l’on ne peut malheureusement pas tous citer ici, mais qui sont de plus en plus nombreux. Merci également à tous ceux qui payent leurs impôts en France sans ronchonner et qui font donc avancer indirectement le développement de ce projet libre, mis à disposition gracieusement — faut‐il le rappeler ? — par le [GREYC](http://www.greyc.fr), un laboratoire public de recherche en [STIC](https://interstices.info/jcms/c_9098/les-stic-une-definition "Sciences et technologies d’information et de communication") — Sciences et technologies d’information et de communication — de Caen, et qui est développé par des fonctionnaires motivés et passionnés (et du coup quelquefois aussi fatigués ! :)). Et en attendant une prochaine dépêche hypothétique sur une future version de G’MIC, vous pouvez toujours suivre l’avancement pas à pas du projet via [notre fil Twitter](https://twitter.com/gmic_ip). D’ici là, vive le traitement d’images libre et la science reproductible ! --- _Crédits images : Sauf mention contraire, les diverses images non synthétiques qui ont servi à illustrer cet article proviennent du site_ [Pixabay](https://pixabay.com/en/).

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