URL: https://linuxfr.org/news/g-mic-3-4-0-le-traitement-d-images-a-la-fleur-de-l-age Title: G´MIC 3.4.0 : Le traitement d’images à la fleur de l’âge Authors: David Tschumperlé orfenor, cli345 et Ysabeau 🧶 🧦 Date: 2024-06-14T11:27:24+02:00 License: CC By-SA Tags: Score: 3 Une nouvelle version **3.4.0** de [_G’MIC_](https://gmic.eu) (_GREYC’s Magic for Image Computing_) vient de sortir ! À cette occasion, nous vous proposons une description des fonctionnalités récentes ajoutées à ce [cadriciel](https://fr.wikipedia.org/wiki/Framework) libre pour [le traitement des images numériques](https://fr.wikipedia.org/wiki/Traitement_d%27images), faisant suite à notre [précédente dépêche](https://linuxfr.org/news/g-mic-3-2-5-15-ans-de-developpement-pour-du-traitement-d-images-libre-et-reproductible) sur ce sujet (publiée en mai 2023). [![G´MIC 3.4.0 Teaser](https://gmic.eu/gmic340/thumbs/teaser_small.png)](https://gmic.eu/gmic340/img/teaser.jpg) _N. D. A. : Cliquez sur les images pour en obtenir une version en pleine résolution, ou une vidéo correspondante lorsque les images contiennent l’icône ![Icône 'Play Video'](https://gmic.eu/gmic340/thumbs/icon_play_video.png)_ ---- [Le projet G’MIC](https://gmic.eu) [Fil Mastodon du projet](https://piaille.fr/@gmic) [Série d’articles G’MIC sur LinuxFr.org](https://linuxfr.org/tags/g'mic/public) ---- # 1. _G’MIC_ en quelques mots [_G’MIC_](https://gmic.eu) est un cadriciel (_framework_) libre pour la manipulation et le traitement des [images numériques](https://fr.wikipedia.org/wiki/Image_num%C3%A9rique), développé au sein de l’équipe [_IMAGE_](https://www.greyc.fr/equipes/image/) du laboratoire de recherche [_GREYC_](https://www.greyc.fr/) de Caen ([_UMR CNRS_](https://fr.wikipedia.org/wiki/Unit%C3%A9_mixte_de_recherche) 6072). Il définit différentes interfaces utilisateur permettant l’application d’algorithmes variés sur des images et des signaux, variés eux aussi. L’élément moteur du projet est un interpréteur d’un langage de script, le [_«  langage G’MIC  »_](https://gmic.eu/reference/overall_context.html), élaboré spécifiquement pour faciliter le prototypage et l’implémentation de nouveaux algorithmes et opérateurs de traitement d’images. Les utilisateurs peuvent ainsi appliquer des opérateurs parmi plusieurs centaines déjà implémentés, ou écrire leurs propres pipelines de traitement et les rendre accessibles dans les différentes interfaces utilisateur du projet. C’est donc, par essence, un cadriciel ouvert, extensible et en évolution constante. Les interfaces de _G’MIC_ les plus populaires sont : [`gmic`](https://gmic.eu/reference/), outil en ligne de commande (complément indispensable à [_ImageMagick_](https://www.imagemagick.org/) ou [_GraphicsMagick_](http://www.graphicsmagick.org) pour traiter/générer/analyser des images à partir du _shell_), le service Web [_G’MIC Online_](https://gmicol.greyc.fr/), et surtout, le greffon [_G’MIC-Qt_](https://github.com/c-koi/gmic-qt), utilisable dans de nombreux logiciels d’édition d’images numériques tels que [_GIMP_](https://www.gimp.org), [_Krita_](https://www.krita.org), [_DigiKam_](https://www.digikam.org), [_Paint.net_](https://www.getpaint.net), [_Adobe Photoshop_](https://fr.wikipedia.org/wiki/Adobe_Photoshop), [_Affinity Photo_](https://fr.wikipedia.org/wiki/Affinity_Photo)… Ce greffon propose aujourd’hui plus de **620 filtres** divers, pour élargir les possibilités de ces logiciels de manipulation d’images. [![Aperçu du greffon G’MIC-Qt](https://gmic.eu/gmic340/thumbs/gmic340.png)](https://gmic.eu/gmic340/img/gmic340.jpg) _Fig. 1.1. Aperçu du greffon G’MIC-Qt en version **3.4.0**, ici lancé depuis GIMP 2.10, avec le filtre « [Comicbook](https://linuxfr.org/news/transformer-une-photo-en-bd-avec-le-filtre-comicbook-de-g-mic) » sélectionné_. # 2. Quoi de neuf dans cette version **3.4.0** ? La version **3.4.0** de G’MIC_ se focalise sur la *stabilité* et le support *long-terme* : Après plus de 15 ans de développement continu du projet, les concepts et codes qui constituent _G’MIC_ ont eu le temps d’être éprouvés, et nous voulons maintenant assurer la stabilisation des _API_ des différents composants du projet : l’_API_ de la [`libgmic`](https://gmic.eu/libgmic.html) (pour intégrer les fonctionnalités de _G’MIC_ dans un code _C_ ou _C++_), celle du greffon [*G’MIC-Qt*](https://github.com/c-koi/gmic-qt/blob/master/NEW_HOST_HOWTO.md) (pour implémenter une version du greffon au sein d’un nouveau logiciel hôte), celle des fonctions de base définissant la [bibliothèque standard de _G’MIC_ (`stdlib`)](https://gmic.eu/reference/list_of_commands.html), ainsi que la syntaxe du [langage _G’MIC_](https://gmic.eu/reference/) lui-même. Ainsi, toutes les versions de cette branche *3.4.x* seront consacrées à la correction de bugs et le développement de fonctionnalités ne nécessitant pas de modification de ces fondations du projet (par exemple, le développement de nouveaux filtres ou d’opérateurs de traitement d’images), avec le souhait d’assurer au maximum une rétro-compatibilité entre ces versions. En ce sens, on considère que la version _3.4.0_ représente un jalon dans l’histoire du projet. En ce qui concerne les améliorations générales apportées aux différentes interfaces utilisateurs, on peut citer principalement : ## _G’MIC Online_ (_G’MICol_) Ce service, qui permet d’appliquer les filtres de _G’MIC_ sur des images, directement à partir d’un navigateur web, existe depuis plusieurs années. En 2024, les membres du service [_DDA_](https://www.greyc.fr/laboratoire/dda/) (_Développement et Déploiement d’Applications_) du laboratoire _GREYC_ ont initié une refonte totale de ce service, avec à la clé un nouveau look, une amélioration nette de l’interface utilisateur (_widgets_ plus intuitifs, amélioration de la fenêtre de prévisualisation, apparition de thèmes clair/sombre, gestion des filtres favoris…) et une automatisation des mises à jour de _G’MIC_ et des filtres associés. La liste des améliorations réalisées serait trop longue à énumérer, et une figure valant mille mots, voici à quoi ressemble aujourd’hui la nouvelle version de ce service web : [![Aperçu du service _G’MIC Online_](https://gmic.eu/gmic340/thumbs/gmicol.png)](https://gmicol.greyc.fr/) _Fig.2.1. Aperçu du service web G´MIC Online, remis au goût du jour à l’occasion de la sortie de la version 3.4.0 de G’MIC (ici, avec le thème clair)._ Si vous souhaitez l’essayer, foncez voir [_G’MIC Online_](https://gmicol.greyc.fr/), ça sera pour nous l’occasion d’avoir un test grandeur nature 😱 ! Et n’hésitez pas à nous faire remonter des soucis éventuels. Dans tous les cas, un grand bravo à nos collègues de l’équipe _DDA_ pour ce travail important de refonte ! ## Greffon _G’MIC-Qt_ En l’espace d’une année, ce sont plus de **40 nouveaux filtres** de traitement d’images qui ont fait leur apparition dans le greffon. La plupart seront détaillés dans la suite de cette dépêche. Mentionnons également l’apparition dans l’interface, d’un nouveau bouton « **Paramètres aléatoires** », qui assigne des valeurs aléatoires aux paramètres d’un filtre sélectionné, ce qui permet d’obtenir un aperçu rapide de la variété de rendus possibles pour un filtre donné. [![Bouton « Paramètres Aléatoires » dans le greffon G´MIC-Qt](https://gmic.eu/gmic340/thumbs/randomize_parameters_fr.png)](https://gmic.eu/gmic340/img/randomize_parameters_en.jpg) _Fig.2.2. Greffon G´MIC-Qt : Le nouveau bouton « Paramètres aléatoires » assigne des valeurs aléatoires aux paramètres du filtre sélectionné._ ## Outil CLI `gmic` L’ensemble des filtres réalisés par la communauté des développeurs est maintenant inclus dans l’exécutable dédié à la ligne de commande, ce qui fait qu’il n’y a plus de différences concernant le nombre de filtres disponibles par défaut entre le greffon _G’MIC-Qt_ et l’outil CLI `gmic` (il fallait auparavant forcer la mise à jour des filtres avec `$ gmic update`). Aujourd´hui, `gmic` dispose d’un arsenal de plus de **4000 fonctions** pour traiter vos images en ligne de commande. Notons que des efforts particuliers ont été faits pour améliorer le visualiseur intégré d’images (commande `display`). On peut dorénavant visualiser plus aisément des collections d’images 2D, des images volumiques 3D ou même des maillages 3D, dans une unique interface, comme illustré sur la figure ci-dessous : [![Commande 'display'](https://gmic.eu/gmic340/thumbs/command_display.png)](https://gmic.eu/gmic340/img/command_display.jpg) _Fig.2.3. Outil CLI `gmic` : Le visualiseur d’images de G’MIC a été entièrement ré-implémenté et permet de visualiser des types d’images différents au sein d’une même interface._ C’est également le cas pour le visualiseur de fonctions mathématiques ou de signaux 1D (commande `plot`), qui a été refait à neuf : [![Commande 'plot'](https://gmic.eu/gmic340/thumbs/command_plot.png)](https://gmic.eu/gmic340/img/command_plot.jpg) _Fig.2.4. Commande `plot`: Le visualiseur de fonctions/signaux 1D a été entièrement repensé._ Tout ceci fait de `gmic` un outil bien pratique, même si on ne se limite qu’à la visualisation d’images en ligne de commande. ## Autres améliorations - L’évaluateur intégré d’expressions mathématiques a encore bien évolué : c’est l’une des briques essentielle du langage _G’MIC_, puisqu’il est en charge d’évaluer le résultat des opérations mathématiques dont on a besoin dans les scripts (autant dire qu’en traitement d’images, on fait tout le temps des calculs). Cet évaluateur s’est enrichi de nombreuses fonctions, en particulier pour le calcul et le traitement de [vecteurs](https://fr.wikipedia.org/wiki/Vecteur), de [matrices](https://fr.wikipedia.org/wiki/Matrice_(math%C3%A9matiques)), et la manipulation native de [tas](https://fr.wikipedia.org/wiki/Tas_(informatique)). - De nombreuses fonctions natives (_C++_) de la bibliothèque ont pu être ré-écrites intégralement en langage _G’MIC_. Ceci va faciliter l’évolution et la maintenance de ces fonctionnalités, puisque leur modification/amélioration future ne nécessitera plus de mise à jour obligatoire des binaires du projet. - Les commandes de chargement/sauvegarde de maillages 3D en format `.obj` (_Wavefront_) ont été améliorées, et de nouvelles commandes de traitement/création de maillages 3D ont vu le jour (par exemple pour visualiser les vecteurs normaux aux sommets d’un maillage, comme illustré sur la vidéo ci-dessous). Et, non, ceci n’est pas une pomme pourrie : [![Exemple de rendu 3D](https://gmic.eu/gmic340/thumbs/render3d.png)](https://gmic.eu/gmic340/img/render3d.mp4) _Fig.2.5. La gestion des maillages 3D au sein de G´MIC a été enrichie de nouvelles commandes._ Voilà pour ce qui concerne les améliorations générales des différentes interfaces proposées par le cadriciel. Passons maintenant au détail des nouveaux filtres et traitements d’images apparus dans _G’MIC_ ces douze derniers mois. # 3. Détails des nouveaux filtres Dans cette (longue) section, nous catégorisons et décrivons les filtres récents, par type d’utilisation : [Retouche photographique](#toc-31-retouche-photographique), [Filtres de déformations](#toc-32-filtres-de-déformations), [Filtres de dégradations](#toc-33-filtres-de-dégradations), [Filtres de rendu et de textures](#toc-34-filtres-de-rendu-et-de-textures), et enfin [Effets artistiques](#toc-35-effets-artistiques). ## 3.1. Retouche photographique Trois filtres intéressants ont fait leur apparition dans le greffon _G’MIC-Qt_ pour aider les photographes à retoucher leurs clichés numériques. Tout d’abord, le filtre **Colors / Mixer [Generic]**, un filtre de mixage de canaux couleur qui offre la possibilité de choisir parmi pas moins de 16 espaces/représentations de couleurs différents pour le mixage (_[CMY](https://fr.wikipedia.org/wiki/Quadrichromie), [CMYK](https://fr.wikipedia.org/wiki/Quadrichromie), [HCY](https://code.google.com/archive/p/colour-space-viewer/), [HSI](https://www.blackice.com/colorspaceHSI.htm), [HSL](https://fr.wikipedia.org/wiki/Teinte_saturation_lumi%C3%A8re), [HSV](https://fr.wikipedia.org/wiki/Teinte_saturation_lumi%C3%A8re), [Jzazbz](https://opg.optica.org/oe/fulltext.cfm?uri=oe-25-13-15131&id=368272), [Lab](https://fr.wikipedia.org/wiki/L*a*b*_CIE_1976), [Lch](https://sensing.konicaminolta.us/us/blog/understanding-the-cie-lch-color-space/), [OKlab](https://bottosson.github.io/posts/oklab/), [RGB](https://en.wikipedia.org/wiki/RGB_color_spaces), [RYB](https://fr.wikipedia.org/wiki/Rouge_jaune_bleu), [XYZ](https://fr.wikipedia.org/wiki/CIE_XYZ), [YCbCr](https://fr.wikipedia.org/wiki/YCbCr), [YIQ](https://fr.wikipedia.org/wiki/YIQ)_ et [YUV](https://fr.wikipedia.org/wiki/YUV)_). Cela constitue une bonne alternative aux outils traditionnels de rehaussement de contrastes ou de couleurs, pour retoucher les photographies qui pourraient être un peu palôtes. [![Filtre 'Colors / Mixer (Generic)'](https://gmic.eu/gmic340/thumbs/filter_mixer_generic.png)](https://gmic.eu/gmic340/img/filter_mixer_generic.jpg) _Fig.3.1.1. Le filtre **Colors / Mixer [Generic]** vient enrichir l’arsenal de filtres déjà disponibles pour la retouche des contrastes et des couleurs._ Parlons également du filtre **Details / Sharpen [Alpha]**, qui comme son nom l’indique, permet de rehausser les détails fins dans des photographies. Il est basé sur une technique originale de décomposition pyramidale de l’image relativement à un opérateur d´[_Alpha blending_](https://fr.wikipedia.org/wiki/Alpha_blending). Cette technique cherche en particulier à minimiser l’apparition de « halos » près des contours, qui est un artefact classique rencontré avec les filtres usuels de rehaussement de détails. [![Filtre 'Details / Sharpen (Alpha)'](https://gmic.eu/gmic340/thumbs/filter_sharpen_alpha.png)](https://gmic.eu/gmic340/img/filter_sharpen_alpha.jpg) _Fig.3.1.2. Le filtre **Details / Sharpen [Alpha]** permet de rehausser assez finement les détails dans les photographies, en minimisant l’apparition de « halos »._ [![Filtre 'Details / Sharpen (Alpha)'](https://gmic.eu/gmic340/thumbs/filter_sharpen_alpha2.png)](https://gmic.eu/gmic340/img/filter_sharpen_alpha2.jpg) _Fig.3.1.3. Détails « Avant/Après » illustrant l’intérêt du filtre **Details / Sharpen [Alpha]**._ Enfin, le filtre **Layers / Spatial Blend Multi-Layers** permet de fusionner plusieurs prises d’un même point de vue en une seule image, avec la possibilité de générer un gradient linéaire spatial entre ces différentes vues. On peut par exemple photographier une même scène à plusieurs moments de la journée (et de la nuit), et utiliser ce filtre de fusion spatiale pour créer une image telle que celle illustrée ci-dessous, en un ou deux clics de souris : [![Filtre 'Layers / Spatial Blend Multi-Layers'](https://gmic.eu/gmic340/thumbs/filter_spatial_blend_multilayers2.png)](https://gmic.eu/gmic340/img/filter_spatial_blend_multilayers2.jpg) _Fig.3.1.4. Le filtre **Layers / Spatial Blend Multi-Layers** permet de fusionner plusieurs photographies avec un gradient spatial linéaire, réglable par l’utilisateur._ (**Crédits** : les images utilisées dans la figure ci-dessus proviennent de la vidéo « [_Stunning New York City skyline timelapse: Day to night_](https://www.youtube.com/watch?v=DDo73Njxdqc) » de la chaîne Youtube « _Rumble Viral_ »). La vidéo suivante illustre le processus complet, en utilisant le greffon _G´MIC-Qt_ sous _GIMP 2.10_ : [![Filtre 'Layers / Spatial Blend Multi-Layers'](https://gmic.eu/gmic340/thumbs/filter_spatial_blend_multilayers.png)](https://gmic.eu/gmic340/img/filter_spatial_blend_multilayers.mp4) ## 3.2. Filtres de déformations Passons maintenant à un ensemble de nouveaux effets disponibles pour déformer vos images un peu dans tous les sens. Avec tout d’abord un premier filtre **Deformations / Distort [RBF]**, qui déforme une image à partir de points clés définis par l’utilisateur et d’une fonction d’interpolation de type _RBF_ ([_Fonction de base radiale_](https://fr.wikipedia.org/wiki/Fonction_de_base_radiale)) dont la formule mathématique est spécifiable par l’utilisateur. [![Filtre 'Deformations / Distort (RBF)'](https://gmic.eu/gmic340/thumbs/filter_deformations_distort_rbf.png)](https://gmic.eu/gmic340/img/filter_deformations_distort_rbf.jpg) _Fig.3.2.1. Le filtre **Deformations / Distort [RBF]** permet d’appliquer des déformations variées, basées sur des RBFs. Ici, en spécifiant la fonction de base radiale phi(r) = log(0.1+r)._ Mentionnons ensuite l’apparition d’une nouvelle catégorie **Map Projection**, qui contient 14 filtres différents dédiés à la transformation de cartes initialement sous la forme de [projection cylindrique équidistante](https://fr.wikipedia.org/wiki/Projection_cylindrique_%C3%A9quidistante) (cartes équirectangulaires), pour les convertir sous la forme d’autres types de projections. Cette série de filtre est une contribution de _Kristian Järventaus_, un membre du [_Cartographers Guild forum_](https://www.cartographersguild.com/showthread.php?t=47591), forum spécialisé dans la cartographie. [![Filtres de la catégorie 'Map Projection'](https://gmic.eu/gmic340/thumbs/filter_map_projection.png)](https://gmic.eu/gmic340/img/filter_map_projection.jpg) [![Filtres de la catégorie 'Map Projection'](https://gmic.eu/gmic340/thumbs/filter_map_projection2.png)](https://gmic.eu/gmic340/img/filter_map_projection2.jpg) _Fig.3.2.2. La nouvelle catégorie de filtres **Map Projection** propose plusieurs algorithmes de projection de cartes géographiques._ Notons également l’arrivée du filtre **Deformations / Square to Circle [alt]**, dont le but est de transformer tout rectangle (ou carré) centré dans une image, en une ellipse (ou un cercle), et vice-versa. Un filtre certes très spécialisé, avec évidemment peu d’applications évidentes au premier abord, mais le jour où on en a besoin, on est bien content de l’avoir sous la main ! Nous l’avons par exemple utilisé ci-dessous pour transformer un cadre de peinture initialement rond, en un cadre carré : [![Filtre 'Deformations / Square to Circle (alt)'](https://gmic.eu/gmic340/thumbs/filter_square_to_circle.png)](https://gmic.eu/gmic340/img/filter_square_to_circle.jpg) [![Filtre 'Deformations / Square to Circle (alt)'](https://gmic.eu/gmic340/thumbs/filter_square_to_circle2.png)](https://gmic.eu/gmic340/img/filter_square_to_circle2.jpg) _Fig.3.2.3. Le filtre **Deformations / Square to Circle [alt]** permet de convertir des objets carrés ou rectangulaires en objets ronds ou elliptiques, et inversement._ Enfin, terminons cette revue des nouveaux filtres de déformations d’images, avec le filtre **Deformations / Poincarré Disk**. Celui-ci permet d’une part de générer des [disques de Poincaré](https://fr.wikipedia.org/wiki/Disque_de_Poincar%C3%A9), une famille de figures géométriques basées sur des géométries hyperboliques, comme illustrée sur la figure suivante : [![Filtre 'Deformations / Poincaré Disk'](https://gmic.eu/gmic340/thumbs/poincare_disk.png)](https://gmic.eu/gmic340/img/poincare_disk.jpg) _Fig.3.2.4. Quelques exemples de disques de Poincaré, générés par le filtre **Deformations / Poincaré Disk**._ Mais là où ça devient intéressant, c’est que ce filtre permet aussi de déformer des images en les projetant sur ces géométries si particulières : [![Filtre 'Deformations / Poincaré Disk'](https://gmic.eu/gmic340/thumbs/poincare_disk2.png)](https://gmic.eu/gmic340/img/poincare_disk2.jpg) _Fig.3.2.5. Projection d’une image sur un disque de Poincaré._ Par exemple, nous avons utilisé ce filtre (avec quelques modifications maison) pour générer la courte animation suivante, « _Survol de la planète Poincaré_ », qui illustre les étonnantes propriétés fractales de ces bizarreries géométriques : [![Filtre 'Deformations / Poincaré Disk'](https://gmic.eu/gmic340/thumbs/planet_poincare.png)](https://gmic.eu/gmic340/img/planet_poincare.mp4) ## 3.3. Filtres de dégradations Il arrive que l’on cherche volontairement à _dégrader_ des images, soit pour simuler une altération réelle (par exemple un flou de bougé, du bruit de capteurs…), soit dans la recherche d’un effet purement esthétique ([_Glitch Art_](https://fr.wikipedia.org/wiki/Glitch_art)). Dans ces buts, les nouveaux effets suivants ont été ajoutés à _G’MIC_ : - Les filtres **Rendering / CRT Scanlines** et **Degradations / CRT Phosphors** cherchent à imiter la restitution d’images sur des [écrans à tube cathodique (CRT)](https://fr.wikipedia.org/wiki/Tube_cathodique), en simulant deux effets caratéristiques de ces types d’afficheurs, à savoir [l’effet _Scanline_](https://fr.wikipedia.org/wiki/Ligne_de_balayage_(tube_cathodique)) et l’affichage par [phosphores](https://en.wikipedia.org/wiki/Phosphor). Ces deux filtres ont été réalisés en collaboration avec [_Romain Hérault_](https://fr.linkedin.com/in/romain-herault-91a596137), nouveau contributeur (qui a rejoint le _GREYC_ récemment). [![Filtre 'Rendering / CRT Scanlines'](https://gmic.eu/gmic340/thumbs/filter_scanline.png)](https://gmic.eu/gmic340/img/filter_scanline.jpg) _Fig.3.3.1. Le filtre **Rendering / CRT Scanlines** imite l’effet « Scanline » typique des afficheurs CRT._ [![Filtre 'Degradations / CRT Phosphors'](https://gmic.eu/gmic340/thumbs/filter_phosphor.png)](https://gmic.eu/gmic340/img/filter_phosphor.jpg) _Fig.3.3.2. Le filtre **Degradations / CRT Phosphors** quant à lui simule la technique d’affichage par phosphore lumineux des afficheurs CRT._ - Le filtre **Degradations / Blur [Motion]** permet, lui, de synthétiser un flou de bougé, avec des trajectoires de type _splines_ possiblement complexes, réglables par l’utilisateur directement en modifiant des points clés dans la fenêtre de prévisualisation de _G’MIC-Qt_, comme illustré sur la figure ci-dessous : [![Filtre 'Degradations / Blur (Motion)'](https://gmic.eu/gmic340/thumbs/filter_blur_motion.png)](https://gmic.eu/gmic340/img/filter_blur_motion.jpg) _Fig.3.3.3. Le filtre **Degradations / Blur [Motion]** simule un flou de bougé._ - Le filtre **Degradations / Sloppy Mess** est quant à lui plutôt destiné aux amateurs de _Glitch Art_. C’est l’un des premiers filtres d’un nouveau contributeur, [_Prawnsushi_](http://prawnsushi.free.fr/), qui s’est récemment intéressé au langage _G’MIC_ pour la création de filtres. C’est un effet un peu long à calculer, mais qui possède de nombreux paramètres et une grande palette de rendus différents. [![Filtre 'Degradations / Sloppy Mess'](https://gmic.eu/gmic340/thumbs/filter_sloppy_mess.png)](https://gmic.eu/gmic340/img/filter_sloppy_mess.jpg) _Fig.3.3.4. Le filtre **Degradations / Sloppy Mess** crée volontairement des artefacts numériques artistiques sur vos images._ ## 3.4. Filtres de rendu et de textures Les filtres de rendu ont cette particularité de ne pas nécessiter d’images d’entrée pour fonctionner, puisqu’ils créent de nouvelles images (ou de nouveaux calques) en partant de zéro, par [génération procédurale](https://fr.wikipedia.org/wiki/G%C3%A9n%C3%A9ration_proc%C3%A9durale). - Le filtre **Rendering / Underwoods**, un deuxième filtre réalisé par _Prawnsushi_, n’est rien de moins qu’un **générateur de sous-bois** ! On pourra nous dire que ça ne sert pas forcément à grand-chose, et évidemment ce n’est pas un filtre qui va être indispensable aux traiteurs d’images, photographes ou illustrateurs pour leur travail de tous les jours. Mais en quelque sorte, ce filtre illustre pourtant toute la philosophie du projet _G’MIC_ : Produire un logiciel qui favorise la **créativité algorithmique**, facilite l’implémentation de **toutes sortes de filtres** (utiles ou moins utiles), et permet le **libre partage** avec des utilisateurs. En pratique, ce filtre a le mérite d’exister, chacun peut l’essayer, et il n’utilise que peu de ressources mémoire (quelques dizaines d’octets, grâce à la compacité du langage _G’MIC_ par construction). Et en plus, les résultats sont plutôt cool ! Et soyez assurés qu’il servira immanquablement, un jour ou l’autre, à un artiste voulant synthétiser une image de sous-bois en deux clics de souris ! [![Filtre 'Rendering / Underwoods'](https://gmic.eu/gmic340/thumbs/filter_underwoods.png)](https://gmic.eu/gmic340/img/filter_underwoods.jpg) [![Filtre 'Rendering / Underwoods'](https://gmic.eu/gmic340/thumbs/filter_underwoods2.png)](https://gmic.eu/gmic340/img/filter_underwoods2.jpg) _Fig.3.4.2. Exemples de rendus d’images de sous-bois par le filtre **Rendering / Underwoods**._ - Le filtre **Patterns / Reaction-Diffusion** synthétise des textures du type de celles qu’on rencontre dans la modélisation des systèmes de [Réaction-Diffusion](https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_r%C3%A9action-diffusion). [![Filtre 'Patterns / Reaction-Diffusion'](https://gmic.eu/gmic340/thumbs/filter_reaction_diffusion.png)](https://gmic.eu/gmic340/img/filter_reaction_diffusion.jpg) _Fig.3.4.3. Le filtre **Patterns / Reaction-Diffusion** dans le greffon G’MIC-Qt._ Là encore, l’intérêt de ce type de filtres peut paraître assez limité. Pourtant c’est l’exemple même de texture qui peut servir de base à la création d’œuvres d’art génératif. Prenez une texture créée par ce filtre, appliquez-lui quelques-uns des autres effets disponibles dans _G’MIC_ (au hasard, le filtre **Deformations / Drop Water**), et vous voilà prêt à produire des animations amusantes, telles que celle ci-dessous : [![Filtre 'Patterns / Reaction-Diffusion'](https://gmic.eu/gmic340/thumbs/water_reaction_diffusion.png)](https://gmic.eu/gmic340/img/water_reaction_diffusion.mp4) - Le filtre **Rendering / Spline Spirograph** s’inspire du jeu du [Spirographe](https://fr.wikipedia.org/wiki/Spirographe_(jeu)) pour le processus de génération de courbes paramétriques, créant des effets de texture et de couleurs intrigants. La présence du bouton **Paramètres aléatoires** dans le greffon _G’MIC-Qt_ est ici plus que bienvenue, pour obtenir rapidement un panorama varié des résultats possibles de ce filtre ! [![Filtre 'Rendering / Spline Spirograph'](https://gmic.eu/gmic340/thumbs/filter_spirograph.png)](https://gmic.eu/gmic340/img/filter_spirograph.jpg) [![Filtre 'Rendering / Spline Spirograph'](https://gmic.eu/gmic340/thumbs/filter_spirograph3.png)](https://gmic.eu/gmic340/img/filter_spirograph3.jpg) _Fig.3.4.1. Le filtre **Rendering / Spline Spirograph** et quelques exemples de rendus possibles._ Ce filtre propose également un mode de sortie animé, produisant plusieurs calques consécutifs qui représentent différentes _frames_ d’une animation, ce qui permet de synthétiser de courtes vidéos comme celle-ci : [![Filtre 'Rendering / Spline Spirograph'](https://gmic.eu/gmic340/img/filter_spirograph4.gif)](https://gmic.eu/gmic340/img/filter_spirograph2.mp4) - Le filtre **Rendering / ABN Filigrees** sait lui aussi tracer des courbes paramétriques intéressantes, en s’inspirant cette fois des filigranes que l’on trouve sur les certificats d’actions ou de papier-monnaie. Ce filtre rend hommage à l’_American Bank Note Company_, un graveur de papier financier ayant été actif à Wall Street du milieu du XIXᵉ siècle jusqu’à il y a une soixantaine d’années. [![Filtre 'Rendering / ABN Filigrees'](https://gmic.eu/gmic340/thumbs/filter_abn.png)](https://gmic.eu/gmic340/img/filter_abn.jpg) _Fig.3.4.4. Le filtre **Rendering / ABN Filigrees** en action._ Ce filtre a été réalisé par [_Garry Osgood_](https://discuss.pixls.us/u/grosgood/summary), contributeur de longue date et rédacteur [des pages de tutoriels](https://gmic.eu/tutorial/) du projet. _Garry_ a détaillé tous les aspects techniques de ce filtre-là en particulier, [sur cette page](https://gmic.eu/tutorial/wheelies.html). - Le filtre **Rendering / Random Signature** est lui aussi un générateur de courbes amusant : il se propose de dessiner des signatures aléatoires, comme l’illustre la vidéo ci-dessous : [![Filtre 'Rendering / Random Signature'](https://gmic.eu/gmic340/thumbs/random_signature.png)](https://gmic.eu/gmic340/img/random_signature.mp4) _Fig.3.4.4. Le filtre **Rendering / Random Signature** permet de créer des signatures aléatoires._ Là encore, un filtre dont l’utilité ne peut pas faire débat : _[« C’est complètement inutile, donc rigoureusement indispensable ! »](https://fr.wikipedia.org/wiki/J%C3%A9r%C3%B4me_Bonaldi)_. - Et pour finir cette section, citons le filtre **Rendering / Twisted Rays** qui génère, comme son nom l’indique, un effet de rayons torsadés. Là encore, l’utilisation de ce filtre restera probablement assez confidentielle. Mais qui sait si dans les milliers d’utilisateurs de _G’MIC_, il n’y a pas justement quelqu’un qui cherchait à réaliser cet effet en particulier ? Et bien maintenant, il peut ! ☺ [![Filtre 'Rendering / Twisted Rays'](https://gmic.eu/gmic340/thumbs/filter_twisted_rays.png)](https://gmic.eu/gmic340/img/filter_twisted_rays.jpg) _Fig.3.4.5. Le filtre **Rendering / Twisted Rays** crée un tourbillon de rayons sur vos images._ Ce filtre peut par exemple être utilisé pour créer ce genre d’effets animés psychédéliques : [![Filtre 'Rendering / Twisted Rays'](https://gmic.eu/gmic340/img/filter_twisted_rays2.gif)](https://gmic.eu/gmic340/img/filter_twisted_rays2.gif) ## 3.5. Effets artistiques Et pour finir avec cette énumération des nouveaux filtres de _G’MIC_, voici quelques filtres en vrac, que l’on va regrouper sous la dénomination « _Artistique_ » (c’est généralement le terme employé dans les logiciels de traitement d’images, pour qualifier des filtres qu’on ne sait pas trop catégoriser…). - Le filtre **Artistic / Stringify** décompose une image d’entrée en _blobs_ de couleurs quantifiés, et relie les points (sous-échantillonnés) localisés sur les contours de ces _blobs_ par des segments de couleur. Là encore, le rendu peut faire penser aux courbes que l’on obtient avec le jeu du Spirographe. [![Filtre 'Artistic / Stringify'](https://gmic.eu/gmic340/thumbs/filter_stringify.png)](https://gmic.eu/gmic340/img/filter_stringify.jpg) _Fig.3.5.1. Le filtre **Artistic / Stringify** crée des abstractions d’images à partir de segments de couleur._ - Le filtre **Black & White / Filaments** est lui, basé sur le lancer de milliers de particules à partir d’un ou plusieurs bords de l’image, avec des trajectoires qui sont déformées par la géométrie des contours de l’image. Le tracé de ces milliers de trajectoires avec des couleurs semi-transparentes permet de produire ce genre d’images : [![Filtre 'Black & White / Filaments'](https://gmic.eu/gmic340/thumbs/filter_filaments.png)](https://gmic.eu/gmic340/img/filter_filaments.jpg) [![Filtre 'Black & White / Filaments'](https://gmic.eu/gmic340/thumbs/filter_filaments2.png)](https://gmic.eu/gmic340/img/filter_filaments2.jpg) _Fig.3.5.2. Le filtre **Black & White / Filaments** transforme vos images en ensembles de filaments qui se déforment._ - Le filtre **Arrays & Tiles / Loose Photos** simule un effet de lancer de photos en vrac sur une table, de telle manière que le contenu des photos recrée une image globale, spécifiée comme entrée du filtre. Beaucoup de paramètres sont réglables (densité, taille et ratio des photographies, paramètres d’ombrage, etc.), afin de laisser à l’utilisateur une grande liberté sur le choix du rendu final. [![Filtre 'Arrays & Tiles / Loose Photos'](https://gmic.eu/gmic340/thumbs/filter_loose_photos.png)](https://gmic.eu/gmic340/img/filter_loose_photos.jpg) _Fig.3.5.3. Exemple de rendu par le filtre **Arrays & Tiles / Loose Photos**._ - Le filtre **Rendering / Quick Copyright**, qui existait déjà dans les versions précédentes, a été ré-implémenté à partir de zéro. Il s’agit d’un filtre facilitant l’insertion d’un texte de _copyright_ (ou d’une signature texte) sur une image numérique. Il possède maintenant de nombreux paramètres permettant de régler finement la position du texte, sa taille, sa fonte, etc. Combiné avec les possibilités d’automatisation du langage _G’MIC_, c’est un filtre avantageux pour insérer facilement du texte, de manière normalisée, sur des milliers de photographies. [![Filtre 'Rendering / Quick Copyright'](https://gmic.eu/gmic340/thumbs/filter_quick_copyright.png)](https://gmic.eu/gmic340/img/filter_quick_copyright.jpg) _Fig.3.5.4. Le filtre **Rendering / Quick Copyright** en action pour l’insertion de texte de copyright sur une image._ - Et enfin, le filtre **Patterns / Random Rectangles** transforme une image en une partition aléatoire de rectangles colorés, pour donner un effet d’abstraction d’image, s’inspirant vaguement du style de certains tableaux de [Piet Mondrian](https://fr.wikipedia.org/wiki/Piet_Mondrian). [![Filtre 'Patterns / Random Rectangles'](https://gmic.eu/gmic340/thumbs/filter_random_rectangles.png)](https://gmic.eu/gmic340/img/filter_random_rectangles.jpg) _Fig.3.5.5. Le filtre **Patterns / Random Rectangles** crée une partition colorée de rectangles aléatoirement placés sur l’image._ Là encore, on peut imaginer utiliser ce filtre pour générer des textures qui pourront par exemple servir à décorer des objets, comme cela a été fait dans l’animation ci-dessous (en partant d’une image de bruit pur) : [![Filtre 'Patterns / Random Rectangles'](https://gmic.eu/gmic340/img/filter_random_rectangles3.gif)](https://gmic.eu/gmic340/img/filter_random_rectangles2.mp4) # 4. Un logiciel aux utilisations variées Comme nous avons essayé de vous le montrer, _G’MIC_ possède de multiples facettes, avec une vaste palette d’applications. La communauté des utilisateurs ne se limite d’ailleurs pas aux artistes numériques, mais comporte également des chercheurs, des programmeurs, des algorithmiciens… Nous montrons ci-dessous quelques autres utilisations variées du logiciel. - **Débruitage d’images du JWST :** En octobre 2023, nous avons appris par l’intermédiaire de [_M.J. McCaughrean_](https://piaille.fr/@markmccaughrean@mastodon.social), chercheur senior à l´[_ESA_ (_European Spatial Agency_)](https://fr.wikipedia.org/wiki/Agence_spatiale_europ%C3%A9enne) (parti à la retraite en 2024), que _G´MIC_ était utilisé par certaines personnes au sein de l’_ESA_ pour traiter des images provenant du [_James Webb Space Telescope_](https://fr.wikipedia.org/wiki/James_Webb_(t%C3%A9lescope_spatial)) (_JWST_), en particulier pour l’atténuation du bruit fréquentiel apparaissant sur certaines images acquises par le télescope (via le filtre **Repair / Banding Denoise** notamment). _G’MIC_ a par exemple été utilisé (entre autres logiciels) pour la réalisation de l’image de couverture du magazine [_Nature_, vol. 622, issue 7981](https://www.nature.com/nature/volumes/622/issues/7981) du 5 octobre 2023, comme confirmé par _M.J. McGaughrean_, et indiqué d’ailleurs dans [la publication associée](https://www.nature.com/articles/s41586-023-06551-1), dont il est le co-auteur. [![Utilisation de G’MIC par l’ESA](https://gmic.eu/gmic340/thumbs/nature.png)](https://gmic.eu/gmic340/img/nature.jpg) _Fig.4.1. Utilisation de G´MIC dans le cadre du débruitage d’images de la proto-étoile Herbig-Haro 211, acquises par le JWST._ Pour nous les développeurs, ça a vraiment été une bonne surprise d’apprendre ça, et de nous rendre compte que _G´MIC_ était utilisé dans le domaine de l’astrophysique. - **Code créatif :** _G’MIC_ se révèle être un allié précieux lorsque l’on cherche à faire du [code créatif](https://fr.wikipedia.org/wiki/Code_cr%C3%A9atif), de par sa capacité à générer/manipuler facilement des images, et de par sa bibliothèque standard d’opérateurs fournie. Durant cette année écoulée, nous nous sommes amusés à explorer ses possibilités pour la création algorithmique d’images et d’animations, dont voici un petit florilège : Commençons tout d’abord par cette petite animation de flocons de neige tourbillonnants ([code source](https://pastebin.com/02AsBKNg), 30 lignes) : [![Animation de flocons de neige](https://gmic.eu/gmic340/img/snow.gif)](https://gmic.eu/gmic340/img/snow.gif) _Fig.4.2. Animation de flocons de neige, générée par un script G´MIC_. Puis enchaînons avec cette variante amusante du jeu de [Pierre-Feuille-Ciseaux](https://fr.wikipedia.org/wiki/Pierre-feuille-ciseaux), où l’on fait d’abord jouer consécutivement chaque pixel d’une image (dont les valeurs initialement aléatoires représentent soit _0 : une pierre_, _1 : une feuille_, ou _2 : des ciseaux_) avec ses 8 voisins, en gardant à chaque fois l’élément qui a été gagnant le plus souvent. Dans un deuxième temps, on stylise la séquence de ces différentes images de labels, là encore, avec le filtre **Drop Water**, pour aboutir à l’animation suivante, que l’on pourrait intituler _« La soupe de l’enfer »_ ([code source](https://pastebin.com/YXFbiFnu), 30 lignes), [![Animation du jeu Pierre-Feuille-Ciseaux](https://gmic.eu/gmic340/img/rock_paper_scissors2.gif)](https://gmic.eu/gmic340/img/rock_paper_scissors.mp4) _Fig.4.3. Animation du jeu de Pierre-Feuille-Ciseaux, où tous les pixels d’une image jouent simultanément._ Et enfin, (re-)plongeons dans le monde merveilleux des [fractales de Mandelbrot](https://fr.wikipedia.org/wiki/Ensemble_de_Mandelbrot), tout d’abord avec ce rendu de l’ensemble de Mandelbrot utilisant la technique du [Orbit Trap](https://en.wikipedia.org/wiki/Orbit_trap) permettant de faire un rendu en y plaquant une image couleur : [![Rendu de l’ensemble de Mandelbrot par la méthode de l’« Orbit Trap »](https://gmic.eu/gmic340/thumbs/orbit_trap.png)](https://gmic.eu/gmic340/img/orbit_trap.jpg) _Fig.4.4. Rendu de l’ensemble de Mandelbrot par la méthode du Orbit Trap_. Puis, avec un autre type de rendu, connu sous le nom de [_Buddhabrot_](https://fr.wikipedia.org/wiki/Buddhabrot), mais ici en considérant des séries complexes de type `zn+1 = zn^p + c`, et en faisant varier linéairement l’exposant réel `p` entre 0 et 6 (plutôt qu’en gardant `p=2` comme pour l’ensemble de Mandelbrot classique), pour générer chaque image de l’animation ci-dessous (code source et détails [sur cette page](https://discuss.pixls.us/t/intriguing-shapes-in-buddhabrot-like-fractals)) : [![Rendu de type 'Buddhabrot' pour des séries complexes avec exposant](https://gmic.eu/gmic340/thumbs/buddhabrot.png)](https://gmic.eu/gmic340/img/buddhabrot.mp4) _Fig.4.5. Variations fractales autour du Buddhabrot_. À noter que pour générer ces images du _Buddhabrot_ modifié à bonne résolution, cela requiert déjà un temps de calcul important (quelques minutes par image). Je trouve cette animation intrigante : il est assez facile d’y retrouver/halluciner des formes familières quand on regarde en détail certaines _frames_ de l’animation, un peu comme quand on regarde les nuages dans le ciel (si [vous croyez apercevoir](https://discuss.pixls.us/t/intriguing-shapes-in-buddhabrot-like-fractals) dans cette animation, une tête d’ours, un vieux monsieur assis, une silhouette de personnage, une tête de dragon… alors vous n’êtes pas les seuls à être un peu rêveurs ☺). - **Conversion d’images pour le _String Art_** : Le [_String Art_](https://en.wikipedia.org/wiki/String_art) est une forme de création artistique caractérisée par l’utilisation de fils de couleurs reliés entre des points (le plus souvent des clous) pour former un motif ou reproduire une photographie (classiquement des portraits). Dans un but d’expérimentation, nous avons écrit un script _G’MIC_ qui cherche à transformer une image d’entrée en niveaux de gris choisie par l’utilisateur, sous la forme d’une série d’instructions à suivre pour relier des clous numérotés avec un fil monochrome, afin de reproduire l’image le plus fidèlement possible (en considérant les contraintes propres à ce mode de création) : [![Tentative d’utilisation de G´MIC pour le 'String Art'](https://gmic.eu/gmic340/thumbs/string_art.png)](https://gmic.eu/gmic340/img/string_art.jpg) _Fig.4.6. Tentative plus ou moins réussie d’utilisation de G´MIC pour le String Art._ Saurez-vous reconnaitre qui est censé être représenté sur la photo ci-dessous (il n’y a rien de spécial à gagner…) ? Une tentative pas forcément couronnée de succès, qui mériterait d’être approfondie (notamment en gérant des fils de différentes couleurs), mais qui illustre cependant les possibilités multiples d’expérimentations que permet le cadriciel _G’MIC_ ! - **Autres liens connexes** : Pour finir, citons ces quelques liens en vrac, qui permettent d’apprécier la polyvalence de _G’MIC_ : 1. **Stéganographie** : Ou comment cacher des données dans une image de bruit ? La commande `rand` est capable de générer des [valeurs aléatoires à densité](https://fr.wikipedia.org/wiki/Variable_al%C3%A9atoire_%C3%A0_densit%C3%A9), c’est-à-dire dont la densité de probabilité est une fonction spécifiée par l’utilisateur. Cela a par exemple comme application de cacher des images de taille 256x256 dans des histogrammes d’images de bruit à 16bits/canal, comme [détaillé sur cette page](https://discuss.pixls.us/t/new-function-rand-pdf-random-values-following-a-custom-distribution). 2. **Galeries artistiques** : [_Ivelieu_](https://deviantart.com/ivelieu/gallery) et [_Gannjondal_](https://deviantart.com/gannjondal/gallery) sont deux artistes fréquentant le site _Deviant Art_ qui utilisent parfois _G´MIC_ dans leur processus de création artistique. Allez faire un tour sur leurs galeries respectives, ça vaut le coup d’œil ! [![Images de la galerie d’Ivelieu](https://gmic.eu/gmic340/thumbs/ivelieu.png)](https://gmic.eu/gmic340/img/ivelieu.jpg) _Fig.4.7. Quelques réalisations de Ivelieu / Devian Art._ [![Images de la galerie de Gannjondal](https://gmic.eu/gmic340/thumbs/gannjondal.png)](https://gmic.eu/gmic340/img/gannjondal.jpg) _Fig.4.8. Quelques réalisations de Gannjondal / Devian Art._ 3. Nous avons appris que la prochaine version du programme de gestion de photos _digiKam_ 8.4.0 [inclura un outil de traitement _G’MIC_](https://www.reddit.com/r/kde/comments/1d67s1d/next_digikam_840_photo_manager_program_will/) au sein du _Batch Queue Manager_, ce qui permettra aux utilisateurs de _digiKam_ d’intégrer les filtres _G’MIC_ dans les flux de travail de post-traitement. 4. [_Thiojoe_](https://www.thiojoe.com/) est un Youtubeur produisant des vidéos autour de la technologie, et programmeur à ses heures. Il a commencé à développer un outil libre basé sur _G´MIC_ pour générer facilement des animations, outil que vous pouvez [retrouver ici](https://github.com/ThioJoe/Gmic-Animation-Tools). Ne fonctionne que sous _Windows_ pour le moment, mais nous garderons un œil dessus. 5. Enfin, mentionnons la chaîne _Youtube_ de [_JustCallMeInsane_](https://www.youtube.com/@JustCallMeInsane/search?query=g%27mic), illustratrice numérique utilisant _Krita_. Elle a récemment réalisé une série de vidéos qui explore les différentes catégories de filtres du greffon _G´MIC-Qt_ pour _Krita_. On espère en passant que l’équipe de développement de _Krita_, qui gère sa propre version du greffon, pourra le mettre à jour assez rapidement. # 5. Conclusion On pourrait résumer cette dépêche en disant que le projet _G’MIC_ « continue son petit bonhomme de chemin ». _G’MIC_ reste bien sûr un projet modeste, développé et maintenu par une petite équipe (de passionnés), mais avec un nombre d’utilisateurs croissant et des retours d’utilisation de plus en plus variés. Ce cadriciel a la chance de pouvoir être développé au sein du _GREYC_, un laboratoire de recherche publique assurant au projet un contexte de développement favorable, d’être soutenu par les tutelles du laboratoire (l’institut « Sciences Informatiques » du _CNRS_, l’Université de Caen et l’_ENSICAEN_) et même encouragé par la direction dudit laboratoire. Et même si le plus gros du développement sur ce projet a probablement déjà été réalisé (plus de 15 ans de développement quand même), nous sommes confiants dans le fait que nous allons continuer à faire évoluer _G’MIC_, en tout cas, tant qu’on verra qu’il peut s’avérer utile aux traiteurs et traiteuses d’images de tout poil ! Et nous en reparlerons certainement dans une prochaine dépêche.