Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
gmic [Le 26/05/2009, 22:15]
213.95.41.13 obsolescence des macros
gmic [Le 11/09/2022, 10:32] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>Gutsy Hardy Intrepid ​graphisme ​BROUILLON}}+{{tag>Xenial Bionic ​graphisme}}
  
 ---- ----
  
 +{{ http://​gmic.sourceforge.net/​img/​logo.png}}
 ====== G'MIC ===== ====== G'MIC =====
  
-G'MIC est un outil de **traitement d'​images en ligne de commande**. Il permet ​de charger/​sauver,​ convertir, manipuler/​filtrer et visualiser des images de toute sorte et de tous formats. Dans cette notice, nous montrerons tout d'​abord quelques utilisations ​de base de G'MIC pour comprendre sa logique interne de fonctionnement. Puis nous l'​appliquerons pour lancer des manipulations plus complexes sur des images et des séquences vidéos.+**G'MIC** est un outil de traitement d'​images en ligne de commande. Il propose un ensemble ​de fonctions ​de base combinables en macros.
  
 +Il est aussi proposé sous forme de [[http://​gmic.eu/​gimp.shtml|plugin pour Gimp]] permettant l'​utilisation de nombreuses macros avec une interface graphique.
  
- +===== Pré-requis ​===== 
- +  
- +  Disposer des [[:sudo|droits d'​administration]]. 
- +  ​* Disposer ​d'​une ​connexion à Internet configurée ​et activée.
-===== Installation ====== +
- +
-Le paquet ​**gmic** ne se trouve pas dans les dépôts officiels, il va donc falloir ​[[:tutoriel:​comment_modifier_sources_maj|modifier vos sources de mises à jour]] pour y ajouter le dépôt suivant : +
- +
-  ​deb http://​download.tuxfamily.org/​xcfaudio/​gmic lenny contrib +
- +
-et rajouter la [[:​tutoriel:​comment_modifier_sources_maj#​gerer_les_cles_d_authentification|clef ​d'authentification]] en tapant dans une console: +
- +
-  sudo wget http://​download.tuxfamily.org/​xcfaudio/​download/​xcfaudio.key.asc -O - | sudo apt-key add - +
- +
-[[:​tutoriel:​comment_modifier_sources_maj#​recharger_la_liste_des_paquets|Rechargez la liste des paquets]] ​et [[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] **[[apt://​gmic|gmic]]**. +
- +
-Si tout se passe bien, vous devriez pouvoir lancer G'MIC depuis la console : +
- +
-  user@laptop:​~$ gmic+
   ​   ​
-  <gmic-#0No options or data provided. Try 'gmic -h' ​for help.+===== Installation ===== 
 +  
 +Pour installer ce logiciel, il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>gmic|G'mic]]**.
  
-A partir de là, tout est en ordre ! A noter que G'MIC étant un outil en ligne de commande, il n'apparaît pas dans le menu déroulant de la liste des programmes.+===== Utilisation du Plugin ====== 
 +Vous trouverez le plugin pour Gimp tout en bas de l'onglet Filtres.
  
 +===== Utilisation en ligne de commande ======
  
 +Pour afficher une image dans le visionneur G'mic:
 +  gmic image.jpg
 +En fait, cette commande charge le fichier image.jpg et comme aucune sortie particulière n'est stipulée, il l'​affiche.
  
 +Pour effectuer une rotation de 90° puis sauver l'​image dans un fichier au format png:
 +  gmic image.jpg -rotate 90 -output image.png
  
-===== Utilisation ​de base ======+Il est aisé de travailler sur plusieurs images à la fois.
  
-L'​ensemble des paramètres passés à G'MIC est interprété comme une séquence de commandes à exécuter. Une commande commence généralement par le caractère '''​-'''​ suivi du nom de la commande, puis un espace, puis éventuellement l'​argument de cette commande. +Par exemple, la commande ​ci-dessous charge 3 images, ​fait une rotation ​de la premièrerehausse ​les contours ​de la deuxième et met la deuxième et la troisième ​en noir et blanc avant de sauver tout le monde au format png. 
- +  gmic image0.jpg image1.jpg image2.jpg -rotate[0] 35 -sharpen[1300 -luminance[1,2] -output dd.png 
- +En effet, les images ​chargées ​sont numérotées ​en partant ​de 0 et placer ​le numéro ​de l'​image ​entre crochets permet ​de n'effectuer ​une manipulation que sur celle-ci.
- +
- +
- +
- +
- +
- +
- +
- +
-==== Chargement d'une (ou plusieurs) image(s) ==== +
- +
-Par exemple, ​pour charger un fichier image dans G'MIC :  +
- +
-  gmic -input fichier.jpg +
- +
-Cette commande charge (et affiche) l'​image spécifiée en paramètre. A noter que la fenêtre de visualisation permet à l'​utilisateur d'une part d'​explorer précisément les valeurs des pixels de l'​image,​ et d'​autre part de zoomer sur certaines parties, en utilisant la souris ou la combinaison ''​CTRL + molette''​. +
- +
-Certaines commandes telles que ''​-input''​ sont tellement redondantes qu'il en existe des raccourcis, en l'​occurrence ici l'​option ''​-i''​ : +
- +
-  gmic -i fichier .jpg +
- +
-La commande ​''​-input''​ est même tellement utile, que G'MIC l'​utilise par défaut lorsque l'​élément lu en ligne de commande ne correspond à aucune commande interne reconnue. On peut donc écrire aussi : +
- +
-  gmic fichier.jpg +
- +
-Une des particularités de G'MIC est qu'il sait charger plusieurs ​images ​en mémoire : +
- +
-  gmic -i fichier1.jpg -i fichier2.jpg -i fichier3.jpg +
- +
-ou encore +
- +
-  gmic fichier1.jpg fichier2.jpg fichier3.jpg +
- +
-Ainsices commandes vous afficheront trois images dans la même fenêtre de visualisation (qui est toujours unique celle-ci). +
- +
-<​note>​ +
-G'MIC "​reconnaît"​ un format de fichier d'​image par son extension. Il est donc nécessaire que vos fichiers images aient l'​extension qui corresponde bien à leur format. +
-</​note>​ +
- +
-On voit que de cette façon, G'MIC va être capable de charger des séquences entières d'​images. Effectivement,​ si on lui spécifie ​une vidéo en fichier d'​entrée,​ G'MIC va charger les différentes images composant la séquence comme une liste d'​images : +
- +
-  gmic video.mpg +
- +
-<note important>​ +
-G'MIC stocke en mémoire vive toutes les images chargées. Pour une vidéo, il est donc important ​de vérifier que l'​ensemble des images ​la composant va tenir en mémoire avant de la charger ! +
-</​note>​ +
- +
-A noter que G'MIC est capable également de charger un sous-ensemble d'​images d'une vidéo. Par exemplela commande suivante va charger ​les images No 10 à No 99, avec un pas de 5 entre chaque image : +
- +
-  gmic video.mpg,​10,​99,​5 +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
-==== Sauvegarde d'une (ou plusieurs) image(s) ==== +
- +
-De la même façon, G'MIC peut sauvegarder les images préalablement chargée dans sa liste interne, en utilisant l'​option ''​-output''​ qui peut être raccourcie en ''​-o''​. +
-Si un format de fichier de sortie ne peut contenir l'​ensemble des images (par exemple si on essaye de sauvegarder une liste de plusieurs images en un fichier ''​.bmp''​),​ alors la sauvegarde se fait en plusieurs fichiers numérotés. +
- +
-G'MIC peut donc convertir un image d'un format en un autre de la façon suivante : +
- +
-  gmic input.jpg -o output.png +
- +
-ou bien séparer les images d'une séquence vidéo ​en plusieurs fichiers images numérotés distincts : +
- +
-  gmic input.mpg -o frames.png +
- +
-ou encore assembler des images de même taille pour en faire une vidéo : +
- +
-  gmic frames*.png -o output.avi +
- +
-Les commandes G'MIC étant lues et interprétée dans l'​ordre d'​apparition sur la ligne de commande, on peut aussi écrire : +
- +
-  gmic image.jpg -o image.bmp -o image.png -o image.tiff +
- +
-par exemple pour convertir une image au format ​//jpg// en ses fichiers équivalents aux formats //bmp//, //png// et //tiff//. +
- +
-G'MIC est basé en partie sur la bibliothèque [[http://​www.imagemagick.org/​Magick%2B%2B/​|Magick++]] et reconnait donc la plupart des types de fichiers images courant. Mais il peut aussi charger et sauver des fichiers plus exotiques comme des images volumiques (imagerie médicale). Un point qui peut être très pratique également est la lecture/​écriture de fichiers ASCII simples contenant les valeurs des pixels.  +
- +
-On peut par exemple écrire les valeurs des pixels d'une image sur la sortie standard par : +
- +
-  gmic image.jpg -o -dlm +
- +
-ou même générer automatiquement du code C/C++ définissant un tableau de valeurs correspondant aux pixels d'une image : +
- +
-  gmic image.jpg -o table_pixels.h +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
-==== Autres commandes utiles ==== +
- +
-Les commandes ''​-input''​ et ''​-output''​ ne sont que deux exemples d'un ensemble de commandes de traitement de base comprises par G'MIC, comprenant également des opérateurs de filtrage, de conversion d'​espace couleurs, de déformations géométriques,​ etc. +
-Nous en listons ici quelques exemples les plus intéressants pour une utilisation de base : +
- +
-  * **Redimensionnement d'​image :** L'​option ''​-resize''​ (raccourcie en ''​-r''​) peut servir à redimensionner les images. Elle prend un argument qui donne la nouvelle taille de l'​image sous la forme ''​Largeur,​Hauteur,​Profondeur,​Nombre_de_canaux,​Type_d_interpolation''​. Les caractères ''​%''​ sont autorisés. Par exemple, la commande :  +
- +
-  gmic *.jpg -r 50%,​50%,​1,​3,​5 -o resized.jpg +
- +
-va prendre tous les fichiers ''​.jpg''​ d'un répertoire,​ va les réduire en taille de moitié (avec une interpolation '''​5'''​ qui correspond à une interpolation //​bicubique//​),​ et va les sauver sous forme de fichiers numérotés ''​resized_xxxx.jpg''​. +
- +
-  * **Débruitage d'​image et rehaussement de contours :** G'MIC possède les options ''​-smooth'',''​-denoise''​ et ''​-sharpen''​ dédiées à la restauration d'​image,​ repris de l'​outil open-source ​[[http://​cimg.sourceforge.net/​greycstoration|GREYCstoration]]. Ces commandes utilisent des processus relativement complexes de lissage d'​image qui sont capables d'​enlever le bruit en préservant les contours. Par exemple en utilisant la commande suivante : +
- +
-  gmic sample.jpg -sharpen 300 -smooth 50 +
- +
-On obtient le résultat de droite à partir de l'​image de gauche (//image reprise du site officiel//​) +
- +
-{{ http://​gmic.sourceforge.net/​img/​sample9.jpg }} +
- +
-===== Utilisation avancée ===== +
- +
- +
- +
- +
- +
- +
- +
- +
-==== Agir sur des sous-images ==== +
- +
-Comme on l'a vu, G'MIC considère en interne une liste d'​image en mémoire. Ce qui est intéressant,​ c'est que chaque commande de G'MIC peut en fait s'​appliquer à l'une ou l'​autre des sous-images de la liste, en ajoutant tout simplement ''​[]''​ au nom de la commande appelée, et en mettant entre les crochets les indices des images de la liste que l'on veut traiter (la première image ayant le numéro ''​0''​).Le fait de ne pas rajouter cet indicateur est équivalent à l'​application de la commande à l'​ensemble des images de la liste. +
-Quelques exemples valent mieux qu'un long discours : +
- +
-  *Sauvegarde uniquement de la 10ème image d'une vidéo : +
- +
-  gmic input.mpg -o[9frame10.png +
- +
-  *Débruitage des frames No 0,​5,​10,​15,​20,​25,​30,​35 d'une vidéo : +
- +
-  gmic input.mpg ​-denoise[0,​5,​10,​15,​20,​25,​30,​3510 -o output.mpg +
- +
-Ce qui peut être écrit de manière plus courte : +
- +
-  gmic input.mpg -denoise[0-35:5] 10 -o output.mpg +
- +
-Ce qu'on peut mettre entre ''​[]''​ peut être relativement compliqué. Les ''​%''​ sont par exemple admis, et la commande suivante : +
- +
-  gmic input.mpg -o[0-10,​20-50%,​75%-100%:​5] output.mpg +
- +
-va sauver le fichier vidéo ''​output.mpg''​ composé de l'​ensemble : +
- +
-  * des images 0 à 10 de la vidéo d'​entrée. +
-  * des images 20 -> moitié de la vidéo d'​entrée +
-  * du dernier quart de la vidéo d'​entrée,​ avec une image sur 5. +
- +
-A noter également que les nombres négatifs sont autorisés pour désigner des numéros d'​images de la liste : le nombre ''​-1''​ correspondant à la dernière image''​-2''​ à l'​avant dernière, etc... +
- +
-Ainsi, si l'on veut traiter toutes les images d'une liste sauf les trois premières et les trois dernières, on pourra écrire (par exemple ici, pour une rotation) : +
- +
-  gmic video.mpg -rotate[3--430 -o result.mpg +
- +
-(A noter que les deux ''​-''​ dans l'​expression ''​[3--4]''​ n'ont pas le même sens ici). +
-Inversementsi on veut uniquement traiter les trois premières et les trois dernières ​images ​de la liste : +
- +
-  gmic video.mpg -rotate[0-2,​-3--1] 30 -o result.mpg +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
-==== Créer des enchaînements de commandes complexes et des macro-commandes ==== +
-<note important>​la plupart des macros données ci-dessous ne sont pas à jour, +
-vous trouverez des exemples plus pertinents dans la [[http://​gmic.sourceforge.net/​gallery.shtml|galerie officielle]]. (cliquez sur les images pour connaître la commande) </​note>​ +
- +
-Cette capacité de G'MIC à agir de manière très précise sur une ou plusieurs images de sa liste est capitale : elle permet d'​enchaîner des commandes simples de manière assez flexible pour créer des effets complexes au final. +
-Par exemple, la commande suivante : +
- +
-  gmic -i sample.jpg -i [0]x3 -rotate[-1] 90 -rotate[-2] 180 -rotate[-3] 270 -r [0] -* -equalize -normalize 0,255 +
- +
-va charger une image, ​en faire trois copies grâce à l'​opérateur ''​-i''​ qui est aussi capable ​de cloner des images de la liste (donc avoir finalement un total de 4 images identiques),​ va tourner les trois dernières respectivement de 90 deg., 180 deg. et 270 deg., puis va les redimensionner toutes avec la même taille (celle de la première image), pour finalement les multiplier entre elles, égaliser l'​histogramme de l'​image résultante et normaliser les valeurs de ses pixels entre 0 et 255. +
- +
-Voila le résultat sur l'​image de tout à l'​heure : +
- +
-{{ http://​gmic.sourceforge.net/​img/​sample2.jpg }} +
- +
-Ce traitement est relativement complexe et s'​interprète en lisant la commande de gauche à droite. Ainsi, même si le nombre de commandes "de base" de G'MIC peut sembler limité à première vue, l'​association qu'il est possible d'en faire peut définir en réalité un nombre d'​effets potentiellement illimité ! +
- +
-Les développeurs de G'MIC l'ont bien compris et ont intégré un système de //​macro-commandes//​ destiné à exploiter cette particularité : Plutôt que d'​obliger un utilisateur définissant ses propres effets à créer à chaque fois un fichier de script particulier dédié à cette tâche, G'MIC donne la possibilité de définir des //​macro-commandes//​ : une macro est simplement un nom de commande //défini par l'​utilisateur//​ dont l'​invocation sur la ligne de commande va être substituée par toute une suite de commande, également définie par l'​utilisateur. +
- +
-En reprenant l'​exemple précédent,​ nous allons créer un fichier ''​mes_macros.txt''​ contenant les lignes : +
- +
-<​file>​ +
-+
-# Mon premier fichier de macro G'MIC ! +
-+
- +
-zarbi : -i [0]x3 -rotate[-1] 90 -rotate[-2] 180 -rotate[-3] 270 -r [0] -* -equalize -normalize 0,255 +
-</​file>​ +
- +
-La création et la sauvegarde ​de l'​image ​précédente pourra alors se faire par l'​invocation ​de G'MIC de la façon suivante : +
- +
-  gmic -m mes_macros.txt sample.jpg -zarbi -o output.png +
- +
-Le tour est joué ! Il est évidemment possible de définir plusieurs macros à l'​intérieur de ce même fichier, et les traitements personnalisés que l'on définit peuvent ainsi être regroupés au sein d'une même entitée. +
- +
-G'MIC définit par défaut une soixantaine de macro-commandes aux buts divers et variés : filtrage, effets artistiques,​ désentrelacement,​ estimation de mouvement, etc... Ces macros ​n'ont pas besoin d'​être explicitement chargées avec l'​option ''​-m''​ car elles sont intégrées par défaut. La liste et le code correspondant de ces macros par défaut est disponible dans le fichier [[http://​cimg.cvs.sourceforge.net/​*checkout*/​cimg/​CImg/​examples/​gmic_def.raw|gmic_def.raw]]. +
- +
-Voici quelques exemples d'​utilisation des macros par défaut. Il est intéressant de voir le déroulement de l'​ensemble des sous-commandes appelées lorsque l'on lance G'MIC en invoquant ​une macro-commande //(images reprises du site officiel)// : +
- +
-  * **Effet dessin au crayon :** +
- +
-  gmic sample.jpg -pencilbw +
- +
-{{ http://​gmic.sourceforge.net/​img/​sample16.jpg }}  +
- +
-  * **Effet vieille photo :** +
- +
-  gmic sample.jpg -noise 2 -damppatch -sepia +
- +
-{{ http://​gmic.sourceforge.net/​img/​sample19.jpg }} +
- +
-  * **Effets reflexion + lissage radial :** : +
- +
-  gmic sample.jpg -radialblur -waterreflection +
- +
-{{ http://​gmic.sourceforge.net/​img/​sample20.jpg }} +
- +
-  * Effet 'Andy Warhol'​ : +
- +
-  gmic sample.jpg -r 200%x200%x1x3x5 -warhol3x3 +
- +
-{{ http://​gmic.sourceforge.net/​img/​sample18.jpg }} +
- +
-On voit que l'​enchaînement de macros est tout à fait possible, et même l'​appel de macros par d'​autres macros. Ce système de commande personnalisé est tout à fait pratique et permet à chacun de se constituer très facilement un fichier d'​effets personnalisés de traitement d'​image.+
  
 +On peut aussi désigner les images en utilisant des nombres négatifs. -1 désignant la dernière, -2 l'​avant-dernière etc. La commande ci-dessous produira exactement la même chose que la précédente:​
 +  gmic image0.jpg image1.jpg image2.jpg -rotate[-3] 35 -sharpen[-2] 300 -luminance[-2,​-1] -output dd.png
  
 +Pour aller plus loin, un [[https://​sourceforge.net/​p/​gmic/​wiki/​Initiation%20%C3%A0%20la%20ligne%20de%20commande%20G%27mic/​|tutoriel en français]] existe, mais parcourir [[http://​gmic.sourceforge.net/​reference.shtml|la page de référence]] du langage G'mic et s'​inspirer des [[http://​cimg.cvs.sourceforge.net/​viewvc/​cimg/​CImg/​examples/​gmic_def.gmic|nombreuses macros]] disponibles par défaut est très enrichissant.
  
 ===== Désinstallation ===== ===== Désinstallation =====
- +  
-Pour supprimer cette application,​ il suffit de supprimer ​le paquet ​**gmic** : +Pour supprimer cette application,​ il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|supprimer ​son paquet]]Selon la méthode choisie, la configuration globale ​de l'​application est conservée ou supprimée. Les journaux du systèmeet les fichiers ​de préférence ​des utilisateurs dans leurs dossiers personnels sont toujours conservés.
- +
-  sudo apt-get remove gmic +
- +
- +
- +
-===== Conclusion ===== +
- +
-G'MIC est un outil de traitement d'​images aux multiples possibilitésIl permet notamment de traiter de manière flexible des images par lotmais il permet surtout ​la création ​de filtres personnalisés de manière simple et efficace par un système ​de macro-commandes. +
-Il possède également des capacités d'​extraction ​et de visualisation de caractéristiques 3D des images //(à compléter)//​. +
- +
- +
- +
  
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * **(en)** [[http://​gmic.sourceforge.net|La page officielle de G'​MIC]]. +  * **(en)** [[http://​gmic.eu|La page officielle de G'​MIC]], 
-  * **(en)** [[http://gmic.sourceforge.net/gallery.shtml|La galerie d'​images de G'​MIC]]. +  * **(en)** [[http://www.flickr.com/groups/gmic|La page Flickr du groupe ​G'​MIC]], plein d'​images et de discussions autour du plugin pour Gimp, 
-  * **(fr)** [[http://ubunteros.tuxfamily.org/spip.php?​article197|Entretien avec l'​auteur ​(Linux on the root)]] +  * **(fr)** [[https://sourceforge.net/p/​gmic/​wiki/​Home_fr|Tutoriels en français]],​ 
-  * **(fr)** [[http://linuxerie.midiblogs.com/archive/2009/01/15/​gimp-gmic4gimp-plethore-d-effet-pour-the-gimp.html|une interface graphique de gmic en greffon pour Gimp]] +  * **(en)** [[https://​github.com/​dtschump/​gmic-community/​wiki|le wiki officiel]], 
 +  * **(fr)** [[https://github.com/dtschump/gmic-community/wiki/Home_fr|wiki fr]].
 ---- ----
  
-//​Contributeurs : Ronounours//​ +//​Contributeurs : Ronounours, [[:​utilisateurs:​ZondeR]].//
  
  • gmic.1243368903.txt.gz
  • Dernière modification: Le 26/05/2009, 22:15
  • par 213.95.41.13