En ce sens, il vient compléter les outils disponibles comme ImageMagick ou GraphicsMagick. Mais là où ces deux programmes se focalisent sur la prise en charge de nombreux formats de fichiers différents (principalement pour les images 2D), G'MIC s'intéresse plutôt à la manipulation proprement dite, avec la définition d'un certain nombre de commandes qui peuvent s'enchaîner pour définir des filtres personnalisés. Le site du projet en montre quelques possibilités. G'MIC possède également des modules simples de visualisation d'images et d'objets 3D (pour visualiser des isophotes/isosurfaces ou des cartes d'élévations), très pratiques pour explorer des données images 2D ou 3D.
Cela en fait un compagnon idéal pour les traiteurs d'images de tout poil. G'MIC a été développé dans l'équipe IMAGE du laboratoire GREYC, et est distribué sous licence libre CeCILL 2.0. G'MIC possède certaines caractéristiques propres qui le distinguent de ses 'concurrents' :
- Il conserve en mémoire une liste numérotée d'images d'entrée. Cela lui permet de manipuler les images, soit par lots, soit séparément, en les combinant éventuellement par la suite. Cette représentation est très adaptée pour manipuler des collections entières d'images, par exemple des séquences vidéos ;
- Il définit un grand nombre de commandes pour le traitement des images : manipulation géométrique, opérateurs arithmétiques, filtrage, conversion entre espaces de couleurs, etc. Ces commandes sont interprétées dans l'ordre d'apparition sur la ligne de commande, ce qui permet une grande flexibilité de manipulation (équivalent à un petit langage de programmation dédié à l'image). À noter que l'algorithme GREYCstoration est inclus dans G'MIC pour le débruitage d'images ;
- Les images manipulées sont typées. G'MIC sait travailler avec des images à valeurs flottantes ou des images avec 16 ou 32 bits par composantes. Les types supportés sont ceux du C classique : bool, unsigned char, short, int, float, double, etc. ;
- G'MIC possède quelques fonctionnalités 3D qui lui permettent d'extraire et de visualiser des caractéristiques 3D des images : isophotes/isosurfaces ou cartes d'élévation. G'MIC sait également charger, sauver et visualiser les objets 3D en format .off.
G'MIC est multi-plateforme, programmé en C++ et basé sur la bibliothèque CImg. Il utilise également les bibliothèques externes de Magick++, FFMPEG, libpng, libjpeg, libtiff, etc. pour gérer différents formats de fichier.
Pour finir, je lance un appel pour aider à packager G'MIC sur différentes architectures/distributions. Si vous arrivez à le compiler sur d'autres systèmes, ou si vous savez faire un paquet pour votre distribution, n'hésitez pas à me contacter !
Aller plus loin
- G'MIC (87 clics)
- Équipe Image du GREYC (64 clics)
# Pas d'IG ?
Posté par Frédérick Diot . Évalué à -1.
[^] # Re: Pas d'IG ?
Posté par Gardel . Évalué à 3.
et sur le site officiel :
G'MIC is a console-based image processing tool
Donc non, il n'y a pas d'interface graphique...
[^] # Re: Pas d'IG ?
Posté par Frédérick Diot . Évalué à 0.
Quand je parlais d'IG, c'est pas une IG propre, c'est de savoir si un programme avait déjà son intégration quelque part dans logiciel comme gimp and co, ou au moins si un projet prépare son intégration.
Parce qu'un logiciel d'imagerie qui n'est utilisable qu'en ligne de commande me laisse relativement perplexe. Pour travailler a peu près dans le domaine, je sais que jamais je pourrais utiliser un tel outil comme ça, parce que ce n'est pas pratique, parce quand on travail en image on a besoin d'avoir avant/après de manière souple, et d'inserer les paramètre de manière intuitif.
C'est pour ça que je me permettais de poser cette question, et je trouve ça relativement légitime.
[^] # Re: Pas d'IG ?
Posté par David Tschumperlé (site web personnel) . Évalué à 6.
Travaillant également dans le domaine du traitement d'images, je me permets de ne pas être d'accord avec toi : les outils en ligne de commandes sont très utiles dans ce domaine.
Je ne compte pas le nombre de fois que j'ai utilisé 'convert' de ImageMagick dans des scripts divers et variés.
David.
[^] # Re: Pas d'IG ?
Posté par Frédérick Diot . Évalué à 2.
Parce que personnellement quand je traite une image, si j'ai besoin de convertir quelque chose, j'utilise directement mon logiciel qui a cette fonction.
Je veux dire je me vois mal lancer une console, retrouver le chemin de mon image, lancer la fonction avec des chance de me planter dans la syntaxe. Enfin j'aimerai bien que tu m'expliques.
Ce n'est pas du tout "méchant", c'est juste que j'essaye de comprendre même si je me fais asphalter !
[^] # Re: Pas d'IG ?
Posté par Quzqo . Évalué à 6.
Pour ce qui est du traitement d'images satellites par exemple (dont un certain nombre aurait mérite à s'appuyer sur des logiciels éprouvés plutot que de "réinventer la roue"), la majorité des traitements s'effectue de manière automatique, quitte à avoir un contrôle visuel en fin de chaine.
Il est plus intéressant de nos jours, avec la puissance de calcul disponible, de traiter une image, même multi-spectrale, par défaut puis de contrôler et de refaire le traitement avec des paramètres différents au besoin que d'avoir un opérateur effectuant toujours les mêmes opérations, sans valeur ajoutée... si ce n'est dans 0,5% des cas.
[^] # Re: Pas d'IG ?
Posté par David Tschumperlé (site web personnel) . Évalué à 5.
Pareil si j'ai envie de visualiser vite fait une image volumique par exemple, je vais avoir tendance à utiliser G'MIC justement plutôt que de lancer une grosse usine à gaz avec une interface.
Mais je pense que c'est juste une question d'habitude. Cela dit, ma modeste expérience me fait donc dire que quand même les outils de manip d'images en ligne de commande, c'est bien pratique !
David.
[^] # Re: Pas d'IG ?
Posté par barmic . Évalué à 3.
C'est une question d'habitude. Chez beaucoup un terminal est ouvert en permanence et ils sont déjà dans le bon répertoire, reste plus qu'à bien connaître son logiciel (comme tu dois connaître ton interface graphique).
P.S. : Avoir un shell bien configurer ça accélère énormément l'usage du terminal.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Pas d'IG ?
Posté par Pierre Jarillon (site web personnel) . Évalué à 3.
En plus F4 c'est tellement commode que ça se retient vite.
[^] # Re: Pas d'IG ?
Posté par Psychofox (Mastodon) . Évalué à 4.
Par exemple, au lieu de charger 200 images en même temps dans gimp ou séquentiellement pour faire une rotation de celles qui ont été prise en mode "portrait", tu peux sélectionner les images en question dans ton navigateur et lancer le script de rotation pour toutes ces images.
C'est aussi utile pour redimenssionner ou convertir de format un lot d'images par exemple...
[^] # Re: Pas d'IG ?
Posté par Prae . Évalué à 4.
Il faut partir du principe que tu as besoin, toi, que de traiter un fichier seulement, mais imagines, si tu as 150.000 images a traiter, et bien, j'y serais encore si je n'utiliserais pas du traitement en ligne de commande.
Mais je suis d'accord sur un élément: quand tu as des opérateurs qui ne s'y connaissent pas en ligne de commande (graphiste & co) mais besoin de modifier une succession d'image, généralement il faut utiliser des logiciels graphics-compliant. Mais là, on part sur des solutions vfx avec une pointe de tracking pour gérer certains binious.
[^] # Re: Pas d'IG ?
Posté par NicoToub . Évalué à 4.
L'intérêt d'une librairie est qu'elle peut être appelée via un autre logiciel, graphique ou non.
Chaque interface graphique ne devrait être... qu'une interface graphique qui utilise des librairies partagées avec d'autres outils (encore une fois, graphiques ou pas).
Par exemple, on trouve souvent des logiciels équivalent sous différents environnements (KDE, Xfce et Gnome par exemple).
Il est inutile de recoder tous les algorithmes spécifiques au traitement d'image dans chacun d'eux. Autant partager ce qui peut l'être via un librairie ou un programme en ligne de commande.
Et c'est ce qui fait que l'on peut également lancer les commandes à la main, les scripter, partager des scripts utilisés par d'autres librairies...
[^] # Re: Pas d'IG ?
Posté par bonnaud frederic (site web personnel) . Évalué à 4.
[^] # Re: Pas d'IG ?
Posté par glyj . Évalué à 3.
++
# vs imagemagick
Posté par Grummfy (site web personnel) . Évalué à 2.
quel différence par rapport à imagemagick? Du peu que je voix, imagemmagick semble plus complet....
[^] # Re: vs imagemagick
Posté par David Tschumperlé (site web personnel) . Évalué à 10.
* ImageMagick ne gère pas (à ma connaissance) complètement les formats d'images volumiques, G'MIC peut les lire, et les décomposer en série de coupes, par exemple. Pareil pour 'display' qui se limite aux images 2D. G'MIC peut visualiser des images volumiques 3D, on peut se balader dans les coupes, etc..
* ImageMagick ne gère pas (à ma connaissance) les formats d'images multi-spectrales avec un grand nombre de composantes (genre image ou chaque pixel est un vecteur de 256 composantes). G'MIC, si.
* En fait, chaque image G'MIC est en interne considérée comme une image volumique multi-spectrale à nombre de composante arbitraire, et de type arbitraire. Les images 2D couleurs en sont justes un cas particulier. Ca veut dire par exemple, que tu peux charger une images volumique 3D à 256 canaux, et faire un blur 3D ou une convolution 3D dessus, ca va marcher. La plupart des fonctions de G'MIC (toutes en fait..) marchent correctement sur les images volumiques multi-spectrales (et ont été programmée pour ce cas général là).
* ImageMagick ne gère pas de listes d'images de manière aussi flexible que G'MIC. Ici, tu peux charger deux images, décider de convoluer l'une avec l'autre, de les additionner, etc... Dans ImageMagick, tu as beaucoup d'opérations de manipulation, mais ça travaille plutôt image par image, sans tellement d'interaction possible entre les images.
* G'MIC semble avoir moins d'opérateurs, mais je dirais qu'il faut se méfier, car ce sont des opérateurs "de base'" qui peuvent s'enchainer pour donner des filtres complexes (voir la page web). Par exemple le '-solaris' de convert peut très bien être réalisé en enchainant plusieurs commandes G'MIC.
* G'MIC est 'typé', tu peux facilement convertir par exemple une image codée en 8 bits, en image 16 bits de même format, par exemple pour le ppm : gmic -t uchar input8.ppm -t ushort -o output16.ppm
* G'MIC sait extraire des caractéristiques 3D à partir des images, comme les isosurfaces ou les cartes d'élévations, et est capable de les visualiser. Je pense pas que ImageMagick sache faire çà.
Je dirais que ImageMagick c'est top pour les images 2D couleurs, mais dès que tu as plus de dimensions, c'est pas toujours possible de récupérer les infos que tu veux. G'MIC utilise en interne un format d'images très générique, qui permet plus de flexibilité de manip pour ce type d'images.
[^] # Re: vs imagemagick
Posté par Grummfy (site web personnel) . Évalué à 2.
[^] # Re: vs imagemagick
Posté par Mat (site web personnel) . Évalué à 1.
Je travaille également dans un labo de traitement de l'image et c'est assez surprenant de voir le peu d'outils existant entre le "traitement d'image" façon gimp (2D, image "isolée") et la programmation directe en C/C++ (par ex.) avec des biblio genre openCv, imagemagick, fftw ... sur des images 3D.
Sur un projet, j'avais choisi à l'origine de couper la poire en deux en bossant avec Octave qui offre une panoplie plus large et plus souple dans le traitement d'image (pas toujours en 3D, malheuresement), mais j'avais été assez vite refroidi par les temps de calcul quand les traitements concernent des images volumineuses, (genre 512^3, double flottants, complexes 8] !) malgré l'écriture de fonctions en C++ pour Octave ...
La "solution" avait alors été de tout recoder en C/c++, ce qui peut etre un peu lourd pour des essais préliminaires...
ImageJ (en java) peut aussi etre intéressant en 3D dans certains cas.
[^] # difference entre une image naturelle et image artificiel
Posté par katebe . Évalué à 1.
et grand merci a "David Tschumperlé" qui a sorti cette merveille que j'ai essayé ce matin, il est formidable,et je crois qu'il est moins gourmand de la memoire.
je demande si il est possible de m'aider a trouver la difference qui exist entre une image simple (nature,mer,plage...) avec une image artificiele realiser avec un outils 3D (batiment 3d,personnage 3d...) ,
est que avec "G'MIC" j'ai de la possibilite de faire ça ,s'il ya d'autre piste je suis pronneur;
et merci David.
[^] # Re: vs imagemagick
Posté par katebe . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.