Le gif animé source n'avait pas de transparence, mais un fond blanc seulement.
Du coup, je me rend compte que G'MIC ne sait apparemment pas lire correctement les GIF avec de la transparence, ce qui est gênant effectivement. Je vais corriger ça pour la prochaine version.
Oui, dans les faits, 'gmic' peut remplacer ImageMagick (pour ma part, je n'utilise quasiment plus les outils fournis avec IM, alors que je le faisais au quotidien auparavant).
IM est quelquefois meilleur sur les entrées-sorties, pour charger/sauver certains formats d'image (le GIF notamment !), mais quand G'MIC n'arrive pas à charger une image en natif, il essaye de toute façon de passer par une conversion via ImageMagick, donc au final c'est transparent pour l'utilisateur. Par contre, au niveau traitements et visualisation proprements dits, je trouve G'MIC bien plus complet.
toutes les images de sections de télégrammes et d'avatars converties avec un filtre sépia
d'ImageMagick, mais nous avons eu des soucis sur les images comportant de la transparence
Alors qu'il suffit d'utiliser G'MIC et sa commande -sepia, quel dommage ;)
Voire même la commande -oldphoto :
Utilises-tu Chrome ?
Nous avons un problème avec Chrome pour le switch des images, c'est effectivement un peu lent, par contre sous Firefox ou IE ça turbine.
L'algo d'estimation de déplacement de G'MIC est exactement celui là (G'MIC est basé sur CImg..).
Donc à priori, on peut utiliser G'MIC pour l'appeller depuis la ligne de commande.
Oui, il faudrait que je puisse voir le type des données d'entrées, et ce que tu veux en faire exactement. Je pourrais aviser ensuite. Effectivement on peut continuer en e-mail :p
A noter qu'il existe aussi une autre interface a G'MIC : ZArt, développé également par Sébastien Fourey (quel contributeur actif!) permettant de jouer avec les filtres de G'MIC sur les images provenant de la webcam. C'est très intéressant notamment pour faire des démonstrations lives d'opérateurs de traitement d'image à des étudiants, ou lors d'occasions telles que la fête de la science.
Ce que est important in fine, c'est d'avoir le choix.
Personne n'utilise des outils de la même façon. Pour remplacer une expression dans un fichier texte, je suis de ceux qui trouve que sed est très pratique (je ne me vois pas apprendre perl juste pour faire ça).
De la même manière, quand je vois le plug-in Lua pour GIMP, je suis bien content de pas faire du lua pour traiter mes images. J'écris la même chose en une ligne alors qu'en lua, il en faut 20 (au moins sur l'exemple du screenshot de l'url que je t'ai donné).
Je crois pas que ça soit du gachis d'avoir le choix.
Note qu'un plug-in permettant de coder en LUA pour faire des traitements d'images en GIMP existe déjà : http://pippin.gimp.org/gluas/
Le but de G'MIC, ce n'était pas de faire une bibliothèque de traitement d'images accessible depuis un langage de script. C'est plutôt d'essayer de définir un langage de script minimal et surtout concis pour faire des opérations sur les images (et pour ne faire que ça). C'est assez différent dans l'esprit.
Je suis bien conscient que le résultat ne te plait pas trop (voir les précédents journaux sur G'MIC, où tu me poses souvent la même question), mais je le redis, ça n'a pas pour vocation d'être un langage généraliste tel que Python ou Lua. A la limite, on pourrait comparer ça au 'langage' utilisé dans 'sed'. Ca a une fonction bien précise, c'est pas forcément très clair, mais c'est concis et c'est prévu pour faire de la manipulation de données (d'images pour gmic, de texte pour sed).
On essaye de se mettre tout doucement à OpenMP dans CImg pour multi-threader les opérations.
Je ne suis pas trop spécialiste, mais c'est une solution pas trop intrusive qui a l'air prometteuse.
Photivo is a free and open source (GPL3) photo processor. It handles your RAW files as well as your bitmap files (TIFF, JPEG, BMP, PNG and many more) in a non-destructive 16 bit processing pipe with gimp workflow integration and batch mode.
Je voulais juste dire qu'il suffit d'installer 'gmic' (la version ligne de commande de G'MIC), pour pouvoir générer de tels rendus dans des scripts ou à partir du shell.
G'MIC est une alternative aux outils ligne de commande de ImageMagick pour tout ce qui est manipulation d'image (ça fait bien 2 ans que je n'ai plus utilisé 'convert' par exemple).
J'ai 308 filtres car j'ai activé les 'filtres additionnels' (section 'A propos / Additional Filters'). Ces filtres sont proposés et hébergés par des contributeurs extérieurs. G'MIC possède un système d'update assez sympa qui permet en effet à d'autres personnes de proposer leur propres filtres à tout le monde (sous réserve d'activer explicitement une 'source externe'). Cela peut-être des filtres très spécifiques ou en cours de développement (comprendre "à la finition pas toujours top moumoute) que les concepteurs de filtres peuvent tout de même faire partager pour les tester à plus grande échelle. Il y a encore assez peu de développeurs de filtres additionnels, mais j'espère que c'est quelque chose qui va évoluer par la suite.
Oui effectivement, mais Krita se développe de telle façon que son architecture ne va probablement pas proposer d'API simple pour la création de plug-ins externes, ce qui implique que pour ajouter des fonctionnalités telles que celles proposées par G'MIC, il faudrait devenir un contributeur direct du projet Krita, et le rendre peut-être dépendant de G'MIC, ce qui ne me semble pas vraiment souhaitable (ni les développeurs de Krita d'ailleurs, ils utilisent déjà leur propre bibliothèque donc ça ferait des fonctionnalités doublons, et puis cela demanderait un temps important de développement sans être sûr qu'il soit finalement intégré au projet).
Je trouve que le système de plug-in est idéal, car G'MIC forme un ensemble indépendant et complet qu'on peut donc théoriquement utiliser un peu partout (il suffit d'adapter les entrées-sorties des logiciels concernés).
J'avais demandé à tout hasard sur la liste de dev de Krita, mais les quelques liens qu'ils m'ont donné me laisse l'impression que ça n'allait vraiment pas être facile, ni perenne, vu qu'ils sont en train de changer pas mal de choses sur leur architecture.
J'ai essayé aussi de voir si je pouvais pas envisager de faire un plug-in pour Pinta, mais c'est du C#, et c'est pareil , ils n'ont pas vraiment prévu d'API pour faire des plug-ins.
C'est déjà le cas. Le plug-in travaille de manière interne avec des images flottantes. Le goulot d'étranglement provient du fait que les entrées-sorties de données images de/vers GIMP doivent se faire en 8 bits (limitation de l'API de GIMP). Tous les traitements effectués par les filtres de G'MIC utilisent donc des flottants, et peuvent même gérer des images volumiques.
Je ne suis pas sûr que culpabiliser les pirates comme tu le fais serve à grand chose. Au final, ce ne sont pas eux les responsables du bordel ambiant sur l'orientation des réseaux (juste des coupables faciles à faire rentrer dans la tête des gens).
Oui, les fonctionnalités sont décrites dans la doc de référence. En particulier, pour le calcul et la visualisation, je conseille de regarder les sections :
Quelques opérateurs d'opérations matriciels sont disponibles ici, par exemple pour inverser une matrice :
dtschump@xxx:$ gmic "(0,1,0;0,0,1;1,0,0)" -invert -p
[gmic]-0./ Start G'MIC instance.
[gmic]-0./ Input image at position [0], with values '(0,1,0;0,0,1;1,0,0)' (1 image 3x3x1x1).
[gmic]-1./ Invert image [0].
[gmic]-1./ Print image [0].
image [0] = '(unnamed)': this = 0xa7f403c, size = (3,3,1,1) [36 b], data = (float*)0xa7f2318..0xa7f233b (non-shared) = [ 0 0 1 ; 1 0 0 ; 0 1 0 ], min = 0, max = 1, mean = 0.333333, std = 0.5, coords(min) = (0,0,0,0), coords(max) = (1,2,0,0).
[gmic]-1./ End G'MIC instance.
(une matrice est simplement définie comme une image, i.e. un tableau de valeurs). Ici on lit que l'inverse de [0,1,0;0,0,1;1,0,0] est [0,0,1;1,0,0;0,1,0].
Après, si on combine quelques commandes entres elles, on peut avoir des choses assez sympas 'facilement', pour la visu de fonctions :
dtschump@xxx:$ gmic 128,128 -f "X=(x-64)/6;Y=(y-64)/6;90*exp(-(X^2+Y^2)/30)*abs(cos(X)*sin(Y))" --n[-1] 0,255 -map[-1] 5 -elevation3d[-1] [-2] -rm[-2] -o3d 0.4
[gmic]-0./ Start G'MIC instance.
[gmic]-0./ Input black image at position [0] (1 image 128x128x1x1).
[gmic]-1./ Fill image [0] with expression 'X=(x-64)/6;Y=(y-64)/6;90*exp(-(X^2+Y^2)/30)*abs(cos(X)*sin(Y))'.
[gmic]-1./ Normalize image [0] in range [0,255].
[gmic]-2./ Map jet color LUT on image [1].
[gmic]-2./ Create 3d elevation of image [1], with elevation map [0].
[gmic]-2./ Remove image [0] (1 image left).
[gmic]-1./ Set opacity of 3d object [0] to 0.4.
[gmic]-1./ Display 3d object [0] = '(unnamed)*' (16384 vertices, 16129 primitives).
[gmic]-1./ Selected 3d pose = [ 2.51969,0,0,-160,0,2.51969,0,-160,0,0,2.51969,-104.929,0,0,0,1 ].
[gmic]-1./ End G'MIC instance.
ou encore :
dtschump@xxx:$ gmic 64,1,1,20,"X=x/w;cos(0.2*X*c+?(0.01*c))" -dg 800,600,0,4,0,1,-1,1 512,1,1,1,"X=x/w;3*sinc(20*X)" -dg[1] 800,600,2,0,0,1,-1,1 -+
[gmic]-0./ Start G'MIC instance.
[gmic]-0./ Input image at position [0], with values 'X=x/w;cos(0.2*X*c+?(0.01*c))' (1 image 64x1x1x20).
[gmic]-1./ Render graph plot from data of image [0].
[gmic]-1./ Input image at position [1], with values 'X=x/w;3*sinc(20*X)' (1 image 512x1x1x1).
[gmic]-1./ Render graph plot from data of image [1].
[gmic]-2./ Add images [0,1].
[gmic]-1./ Display image [0] = '(unnamed)*'.
(unnamed)* (800x600x1x3): this = 0xbfbd910c, size = 1 [5625 Kb], data = (CImg<float>*)0x93ff5c4..0x93ff5db.
[0]: this = 0x93ff5c4, size = (800,600,1,3) [5625 Kb], data = (float*)0xb6077008..0xb65f5407 (non-shared) = [ 220 220 220 220 220 220 220 220 ... 220 220 220 220 220 220 220 220 ], min = 0, max = 255, mean = 243.949, std = 31.8313, coords(min) = (412,594,0,2), coords(max) = (783,583,0,2).
[gmic]-1./ End G'MIC instance.
Si on se penche ensuite vraiment sur la syntaxe du langage, on peut faire des choses assez sophistiquées, en combinant rendus 2d et 3d par exemple, en très peu de lignes.
[^] # Re: Avatars sépia
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche C'était mieux avant !. Évalué à 9.
Le gif animé source n'avait pas de transparence, mais un fond blanc seulement.
Du coup, je me rend compte que G'MIC ne sait apparemment pas lire correctement les GIF avec de la transparence, ce qui est gênant effectivement. Je vais corriger ça pour la prochaine version.
[^] # Re: Avatars sépia
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche C'était mieux avant !. Évalué à 10.
Oui, dans les faits, 'gmic' peut remplacer ImageMagick (pour ma part, je n'utilise quasiment plus les outils fournis avec IM, alors que je le faisais au quotidien auparavant).
IM est quelquefois meilleur sur les entrées-sorties, pour charger/sauver certains formats d'image (le GIF notamment !), mais quand G'MIC n'arrive pas à charger une image en natif, il essaye de toute façon de passer par une conversion via ImageMagick, donc au final c'est transparent pour l'utilisateur. Par contre, au niveau traitements et visualisation proprements dits, je trouve G'MIC bien plus complet.
Mais cela dit, mon avis est probablement biaisé !
[^] # Re: Avatars sépia
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche C'était mieux avant !. Évalué à 10. Dernière modification le 02 avril 2013 à 09:29.
Oui normalement G'MIC sait faire ça avec des GIFs (animés ou non).
Exemple :
Source :
Résultat :
Et du coup, rien n'interdit de mettre un effet 'old photo' en passant :
Résultat :
# Avatars sépia
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche C'était mieux avant !. Évalué à 10.
Alors qu'il suffit d'utiliser G'MIC et sa commande
-sepia
, quel dommage ;)Voire même la commande
-oldphoto
:Pour l'année prochaine peut-être ?
[^] # Re: Copain
Posté par David Tschumperlé (site web personnel) . En réponse au journal Meilleurs vœux : suis-je un sociopathe ?. Évalué à 8.
Donc si on a la chiasse, ça va plutôt bien finalement !
Ca coule de source !
[^] # Re: Amélioration
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche G’MIC Online, le traitement d’image en ligne. Évalué à 4.
Utilises-tu Chrome ?
Nous avons un problème avec Chrome pour le switch des images, c'est effectivement un peu lent, par contre sous Firefox ou IE ça turbine.
# Amélioration
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche G’MIC Online, le traitement d’image en ligne. Évalué à 10.
Sébastien a déjà mis en place quelques améliorations du site, avec :
Je trouve la proposition du commentaire précédente très pertinente, on va voir si c'est possible à faire.
[^] # Re: PIV
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche G’MIC Online, le traitement d’image en ligne. Évalué à 3.
L'algo d'estimation de déplacement de G'MIC est exactement celui là (G'MIC est basé sur CImg..).
Donc à priori, on peut utiliser G'MIC pour l'appeller depuis la ligne de commande.
[^] # Re: PIV
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche G’MIC Online, le traitement d’image en ligne. Évalué à 3.
Oui, il faudrait que je puisse voir le type des données d'entrées, et ce que tu veux en faire exactement. Je pourrais aviser ensuite. Effectivement on peut continuer en e-mail :p
[^] # Re: PIV
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche G’MIC Online, le traitement d’image en ligne. Évalué à 3.
Oui je pense que c'est possible, G'MIC possède des outils d'estimation de déplacement local entre deux images, en 2D et en 3D.
# ZArt
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche G’MIC Online, le traitement d’image en ligne. Évalué à 10. Dernière modification le 14 juillet 2024 à 20:08.
A noter qu'il existe aussi une autre interface a G'MIC : ZArt, développé également par Sébastien Fourey (quel contributeur actif!) permettant de jouer avec les filtres de G'MIC sur les images provenant de la webcam. C'est très intéressant notamment pour faire des démonstrations lives d'opérateurs de traitement d'image à des étudiants, ou lors d'occasions telles que la fête de la science.
Honte à moi pour cet oubli !
Voici une copie d'écran de ZArt en action :
[^] # Re: libgmic
Posté par David Tschumperlé (site web personnel) . En réponse au journal Nouvelles du projet G'MIC : Version 1.5.1.2. Évalué à 6.
Ce que est important in fine, c'est d'avoir le choix.
Personne n'utilise des outils de la même façon. Pour remplacer une expression dans un fichier texte, je suis de ceux qui trouve que sed est très pratique (je ne me vois pas apprendre perl juste pour faire ça).
De la même manière, quand je vois le plug-in Lua pour GIMP, je suis bien content de pas faire du lua pour traiter mes images. J'écris la même chose en une ligne alors qu'en lua, il en faut 20 (au moins sur l'exemple du screenshot de l'url que je t'ai donné).
Je crois pas que ça soit du gachis d'avoir le choix.
[^] # Re: X11
Posté par David Tschumperlé (site web personnel) . En réponse au journal Nouvelles du projet G'MIC : Version 1.5.1.2. Évalué à 4.
On peut tout à fait enlever la dépendance à libX11, il suffit de compiler en commentant les lignes suivantes dans le Makefile :
[^] # Re: libgmic
Posté par David Tschumperlé (site web personnel) . En réponse au journal Nouvelles du projet G'MIC : Version 1.5.1.2. Évalué à 3.
Note qu'un plug-in permettant de coder en LUA pour faire des traitements d'images en GIMP existe déjà : http://pippin.gimp.org/gluas/
Le but de G'MIC, ce n'était pas de faire une bibliothèque de traitement d'images accessible depuis un langage de script. C'est plutôt d'essayer de définir un langage de script minimal et surtout concis pour faire des opérations sur les images (et pour ne faire que ça). C'est assez différent dans l'esprit.
Je suis bien conscient que le résultat ne te plait pas trop (voir les précédents journaux sur G'MIC, où tu me poses souvent la même question), mais je le redis, ça n'a pas pour vocation d'être un langage généraliste tel que Python ou Lua. A la limite, on pourrait comparer ça au 'langage' utilisé dans 'sed'. Ca a une fonction bien précise, c'est pas forcément très clair, mais c'est concis et c'est prévu pour faire de la manipulation de données (d'images pour gmic, de texte pour sed).
[^] # Re: libgmic
Posté par David Tschumperlé (site web personnel) . En réponse au journal Nouvelles du projet G'MIC : Version 1.5.1.2. Évalué à 2.
La libgmic contient l'implémentation de l'interpréteur G'MIC, qui lui même est basé sur CImg (mais aussi sur d'autres choses).
[^] # Re: coeur ?
Posté par David Tschumperlé (site web personnel) . En réponse au journal Nouvelles du projet G'MIC : Version 1.5.1.2. Évalué à 2.
Sur une image c'est généralement possible de faire un calcul distribué pour différentes parties de l'image, c'est là dessus qu'on se base.
[^] # Re: coeur ?
Posté par David Tschumperlé (site web personnel) . En réponse au journal Nouvelles du projet G'MIC : Version 1.5.1.2. Évalué à 4.
On essaye de se mettre tout doucement à OpenMP dans CImg pour multi-threader les opérations.
Je ne suis pas trop spécialiste, mais c'est une solution pas trop intrusive qui a l'air prometteuse.
# Liens
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche Valorisation de logiciels produits dans les laboratoires et PLUME à Caen. Évalué à 4.
Quelques remarques, peut-être qu'un modérateur peut corriger :
Merci.
# Photivo
Posté par David Tschumperlé (site web personnel) . En réponse au journal Logiciels de développement des fichiers RAW sous Linux. Évalué à 7.
Il y a aussi Photivo : http://photivo.org/photivo/start
qui a l'air pas mal.
[^] # Re: en tant que dino du xterm...
Posté par David Tschumperlé (site web personnel) . En réponse au journal [GIMP] Une alternative libre au plug-in Fractalius. Évalué à 10.
Je voulais juste dire qu'il suffit d'installer 'gmic' (la version ligne de commande de G'MIC), pour pouvoir générer de tels rendus dans des scripts ou à partir du shell.
On voudra éventuellement bidouiller un peu le contraste avant ou après pour mieux faire ressortir l'aspect fibreux du rendu :
G'MIC est une alternative aux outils ligne de commande de ImageMagick pour tout ce qui est manipulation d'image (ça fait bien 2 ans que je n'ai plus utilisé 'convert' par exemple).
[^] # Re: merci
Posté par David Tschumperlé (site web personnel) . En réponse au journal [GIMP] Une alternative libre au plug-in Fractalius. Évalué à 8.
J'ai 308 filtres car j'ai activé les 'filtres additionnels' (section 'A propos / Additional Filters'). Ces filtres sont proposés et hébergés par des contributeurs extérieurs. G'MIC possède un système d'update assez sympa qui permet en effet à d'autres personnes de proposer leur propres filtres à tout le monde (sous réserve d'activer explicitement une 'source externe'). Cela peut-être des filtres très spécifiques ou en cours de développement (comprendre "à la finition pas toujours top moumoute) que les concepteurs de filtres peuvent tout de même faire partager pour les tester à plus grande échelle. Il y a encore assez peu de développeurs de filtres additionnels, mais j'espère que c'est quelque chose qui va évoluer par la suite.
[^] # Re: gmic
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche Petites brèves : MediaGoblin, CloudStack, Walt Disney et G'MIC. Évalué à 4.
Oui effectivement, mais Krita se développe de telle façon que son architecture ne va probablement pas proposer d'API simple pour la création de plug-ins externes, ce qui implique que pour ajouter des fonctionnalités telles que celles proposées par G'MIC, il faudrait devenir un contributeur direct du projet Krita, et le rendre peut-être dépendant de G'MIC, ce qui ne me semble pas vraiment souhaitable (ni les développeurs de Krita d'ailleurs, ils utilisent déjà leur propre bibliothèque donc ça ferait des fonctionnalités doublons, et puis cela demanderait un temps important de développement sans être sûr qu'il soit finalement intégré au projet).
Je trouve que le système de plug-in est idéal, car G'MIC forme un ensemble indépendant et complet qu'on peut donc théoriquement utiliser un peu partout (il suffit d'adapter les entrées-sorties des logiciels concernés).
J'avais demandé à tout hasard sur la liste de dev de Krita, mais les quelques liens qu'ils m'ont donné me laisse l'impression que ça n'allait vraiment pas être facile, ni perenne, vu qu'ils sont en train de changer pas mal de choses sur leur architecture.
J'ai essayé aussi de voir si je pouvais pas envisager de faire un plug-in pour Pinta, mais c'est du C#, et c'est pareil , ils n'ont pas vraiment prévu d'API pour faire des plug-ins.
[^] # Re: gmic
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche Petites brèves : MediaGoblin, CloudStack, Walt Disney et G'MIC. Évalué à 5.
C'est déjà le cas. Le plug-in travaille de manière interne avec des images flottantes. Le goulot d'étranglement provient du fait que les entrées-sorties de données images de/vers GIMP doivent se faire en 8 bits (limitation de l'API de GIMP). Tous les traitements effectués par les filtres de G'MIC utilisent donc des flottants, et peuvent même gérer des images volumiques.
[^] # Re: Il y a un point que tu ne sembles pas avoir compris
Posté par David Tschumperlé (site web personnel) . En réponse au journal Non-confession d'un flibustier. Évalué à 5.
Je ne suis pas sûr que culpabiliser les pirates comme tu le fais serve à grand chose. Au final, ce ne sont pas eux les responsables du bordel ambiant sur l'orientation des réseaux (juste des coupables faciles à faire rentrer dans la tête des gens).
[^] # Re: G'MIC
Posté par David Tschumperlé (site web personnel) . En réponse à la dépêche Petite actu des outils d’analyse numérique. Évalué à 10.
Oui, les fonctionnalités sont décrites dans la doc de référence. En particulier, pour le calcul et la visualisation, je conseille de regarder les sections :
Ca permet par exemple d'utiliser G'MIC comme une calculatrice pas trop basique :
(ici '-e' est équivalent à '-echo' et affiche juste le résultat sur la console).
Quelques opérateurs d'opérations matriciels sont disponibles ici, par exemple pour inverser une matrice :
(une matrice est simplement définie comme une image, i.e. un tableau de valeurs). Ici on lit que l'inverse de [0,1,0;0,0,1;1,0,0] est [0,0,1;1,0,0;0,1,0].
Pratique pour visualiser des données (en particulier '-plot' pour les courbes 1d). Par exemple,
ou encore :
Si on se penche ensuite vraiment sur la syntaxe du langage, on peut faire des choses assez sophistiquées, en combinant rendus 2d et 3d par exemple, en très peu de lignes.