Journal [Traitement d'images] Sortie de G'MIC 1.3.5

Posté par (page perso) .
Tags : aucun
17
17
mai
2010
Je suis heureux de vous annoncer la sortie d'une nouvelle version majeure (la 1.3.5.0) de G'MIC (GREYC's Magic Image Converter), un outil de manipulation et de traitement d'images génériques (2d/3d/multi-valuées), développé dans l'équipe IMAGE du laboratoire GREYC (unité CNRS UMR 6072), depuis Août 2008. Ce petit logiciel sait traiter les images couleurs "classiques" (8/16 bits par composantes), mais aussi des données plus complexes, comme les images (ou les séquences d'images) volumiques et/ou multispectrales, à type de pixels quelconques (à valeurs flottantes notamment). Il est disponible à l'adresse :

http://gmic.sourceforge.net

Ce projet définit en premier lieu un langage de script assez complet et extensible (+ de 500 commandes définies à ce jour), dédié entièrement à la conception de pipelines de traitement d'images. Il permet en particulier d'exprimer des filtres ou des effets sur des images de manière très concise. Ce langage est utilisable grâce à une implémentation libre de son interpréteur, distribué actuellement sous 3 formes différentes, toutes sous licence CeCILL (compatible GPL) :

  • L'outil en ligne de commande gmic permet de manipuler des images à partir d'un shell. Cet outil peut s'apparenter à la suite d'outils fournis par ImageMagick (IM) ou GraphicsMagick (GM), car il permet tout à la fois de créer, convertir, visualiser et traiter des paquets d'images. L'intégration cohérente de l'ensemble de ces fonctionnalités dans un seul et unique programme est l'une des forces de G'MIC. Une petite discussion sur les différences d'approches entre G'MIC et IM/GM est proposé dans l'un des mes précédent journaux.

  • Le greffon gmic_gimp permet d'étendre le logiciel de retouche d'images maintenant classique qu'est GIMP, en proposant dans une interface graphique unique, une panoplie de filtres divers et variés (environ 170 à ce jour) à appliquer sur vos images. Ce greffon est actuellement la partie la plus visible et sans doute la plus utilisée de G'MIC, bien qu'étant beaucoup plus limité que la version en ligne de commande (notamment car GIMP ne permet pas encore de bien gérer les images à plus de 8 bits par composantes). Ce greffon intègre en particulier des algorithmes assez sympathiques et performants pour l'amélioration d'images (rehaussement de contours/contrastes, réduction du bruit, retouches colorimétriques, reconstruction de zones manquantes, etc...).

  • La bibliothèque C++ libgmic permet d'intégrer relativement facilement l'interpréteur G'MIC (et donc l'ensemble de ses possibilités de traitement) dans des programmes open-source tiers (à licences compatibles avec la GPL). C'est un des points sur lesquel j'essaie d'attirer l'attention des développeurs, car il me semble que disposer d'une telle panoplie de filtres "prêts à l'emploi" est quelque chose qui pourrait être intéressant pour tout logiciel de retouche ou de création d'images, d'autant que la bibliothèque est assez légère (env. 2.5 Mo), et que ses filtres évoluent avec le temps, que de nouveaux filtres apparaissent, sans que l'API de la bibliothèque ne soit modifié, ce qui implique une facilité de mise à jour pour le développeur. Un premier pas a été franchi par Jos De Laender, qui semble intéressé pour intégrer la libgmic dans son logiciel de traitement des images RAW, nommé Jdlraw. C'est encourageant, car cela pourrait permettre d'avoir une interface graphique à certains filtres de G'MIC pour traiter des images couleurs à 16 bits par composantes, sans passer par la ligne de commande.

Voici un tour d'horizon rapide des nouveautés de cette dernière version 1.3.5.0, ainsi que quelques données décrivant l'état actuel et l'évolution du projet. Les nouveautés peuvent sembler assez mineures, même si un travail de fond important a été entrepris pour améliorer le langage, et stabiliser/optimiser l'interpréteur.

Nouveautés :

  • Apparition du mode projection parallèle pour le rendu d'objets 3d maillés.
  • Nouvelles commandes -break et -continue, qui permettent de sortir/continuer des boucles de traitements, de la même manière qu'en C/C++.
  • Apparition d'un shell intégré, simpliste, mais fonctionnel, pour la version en ligne de commande. Il est particulièrement sympa à utiliser dans un but de découverte des diverses possibilités de G'MIC, puisque l'on visualise à chaque instant l'état des images que l'on manipule.
  • Gestion plus souple des substitutions de paramètres lors de l'appel de fonctions définis par l'utilisateur. G'MIC utilise la notation classique $1,$2,.. pour représenter les arguments des fonctions appelés, et il est maintenant possible d'exprimer des substitutions assez tordues, par exemple ${2--2}, remplacé par tous les arguments sauf le premier ($1) et le dernier ($-1).
  • Meilleure gestion de la fenêtre de prévisualisation dans le greffon pour GIMP. La vue n'est plus recalculée si on coche/décoche successivement le toggle button Preview, ce qui permet de comparer rapidement l'effet d'un filtre sur une image originale.
  • Apparition d'un mode séparation horizontal ou vertical pour la prévisualisation de certains filtres du greffon pour GIMP. Cela permet également de comparer rapidement l'effet des paramètres d'un filtre sur une image donnée.
  • Nouveau filtre de composition Shape Average, permettant de remplir séparemment des régions non-connexes d'un masque avec la couleur moyenne de l'image dans ces zones. Ce mode de composition permet notamment de créer des effets mosaiques en spécifiant des formes de mosaiques quelconques.
  • Nouveau filtre de déconvolution d'image, basé sur l'algorithme de Richardson-Lucy, pour réduire l'effet de flou isotrope dans les images.
  • Nouveau filtre Stencil, permettant de créer des formes binaires dont les contours sont données par ceux d'une image couleur.
  • Nouveau filtre Relief light, permettant d'ajouter une source de lumière sur une image en calculant une illumination tenant compte de la carte d'élévation donnée par l'image elle-même. Cela permet de créer des effets plastiques assez amusants.

Infos projet et perspectives :

  • G'MIC est devenu en un peu moins de 2 ans un projet relativement conséquent. Il comptabilise aujourd'hui plus de 56.000 lignes de code (C++ et script), et totalise bientôt 80.000 téléchargements. Son développement a été assez rapide (dans la mesure où je suis l'unique développeur), facilité par l'utilisation de CImg, bibliothèque C++ template pour le traitement d'images, développé dans la même équipe. J'ai reçu pas mal d'aide de personnes extérieures au labo, pour les tests, l'empaquetage, le design, le site web, etc... Merci à eux pour leur travail acharné.
  • Des paquets officiels de G'MIC pour la distribution Debian sont maintenant disponibles (pour la version 1.3.4.1, et bientôt pour la 1.3.5.0), grâce au travail volontaire du mainteneur Bernd Zeimetz, dejà responsable du super paquet gimp-plugin-registry (que tout utilisateur de GIMP se doit d'installer, par ailleurs). Un grand merci à lui ! Il a notamment proposé d'ajouter G'MIC comme dépendance conseillée à l'installation de la dernière version du paquet gimp-plugin-registry, ce qui va sans aucun doute améliorer la visibilité de notre projet, ce dernier paquet étant installé et utilisé par un grand nombre de personnes.
  • On a "fêté" l'inscription du 100ème membre au groupe Flickr dédié à G'MIC. Ca fait toujours plaisir de franchir ce type de seuil symbolique. N'hésitez pas à vous inscrire et à faire partager vos réalisations G'MICesques dans la galerie d'image collaborative prévue à cet effet :)
  • En préparation, la complétion automatique des commandes G'MIC en utilisant les mécanismes de complétion custom des shells bash et zsh. Ce projet proposé à des étudiants ingénieurs de l'ENSICAEN (Ecole Nationale Supérieure des Ingénieurs de Caen) est très prometteur (de ce que j'en ai vu pour le moment), et va améliorer sans aucun doute l'utilisation de gmic en ligne de commande (la touche TAB servant à la fois à compléter les noms de commandes ainsi qu'à donner la liste des arguments possibles pour une commande invoquée). Un grand merci à Guillaume Née, doctorant de l'équipe IMAGE pour cette très bonne idée et pour le temps d'encadrement qu'il y consacre.

C'est la fin de ce long journal. En espérant que cette sortie estivale de cette nouvelle version de G'MIC puisse être l'occasion de vous intéresser à ce projet, et pourquoi pas (soyons fous) de devenir même utilisateur enjoué de ce sympathique logiciel !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.