Bonjour,
La deuxième mouture de GREYCstoration [1] est sortie.
GREYCstoration est un petit programme en ligne de commande qui permet de régulariser des images, et qui a un tas d'applications sympas, notamment le débruitage, l'inpainting, et le redimensionnement d'images. Il est distribué sous licence CeCILL.
L'algorithme utilisé est basé sur des EDP de diffusion anisotropes (équations aux dérivées partielles), qui ont la particularité de bien lisser sans détruire les contours. Cet algorithme a été développé dans l'équipe IMAGE [2] du laboratoire GREYC [3] de Caen (UMR CNRS 6072).
Cette deuxième version corrige quelques bugs de la première, et utilise un jeu de paramètres beaucoup plus simple à régler, et plus intuitif (bon c'est pas encore tout automatique, mais on arrive à quelque chose de mieux plus rapidement, même avec les paramètres par défaut). J'ai essayé d'optimiser un peu, et il me semble aussi que c'est plus rapide.
Une petite interface de visualisation du résultat a également été faite, afin de permettre de comparer globalement et localement l'image originale et l'image restaurée, et de relancer une itération de manière interactive si le lissage n'est pas considéré comme suffisant (avant, il fallait relancer tout l'algorithme depuis le début). Si on est satisfait du résultat, on peut le sauver dans un fichier.
Pour l'occasion, le site de GREYCstoration [1] a été refait presque à neuf (les images de démos sont encore ceux de la première version). Je compte écrire un tutorial illustré par des exemples qui explique précisément le rôle de chaque paramètre. Le choix des paramètres dépend bien entendu du type de bruit que l'on veut enlever dans l'image, et on peut penser à créer des profils pré-défini (comme cela a été commencé dans les plug-ins digikam [4]). J'espère vraiment que Victor Stinner pourra mettre à jour son plug-in pour Gimp [5] assez vite :)
Les sources sont disponibles dans la dernière archive en date de CImg (la 1.11beta) et des binaires précompilés pour PC Linux et Windows sont dispo directement sur le site [1].
Pour finir, je signale que je donne demain (jeudi 8 décembre) un séminaire Image [6] dans les locaux de l'ENSICAEN [7], à 14h qui expliquera en détail les équations qui se cachent derrière GREYCstoration. Ceux qui sont intéressés sont les bienvenus !
[1] http://www.greyc.ensicaen.fr/~dtschump/greycstoration/
[2] http://www.greyc.ensicaen.fr/EquipeImage/
[3] http://www.greyc.ensicaen.fr/
[4] http://extragear.kde.org/apps/digikamimageplugins/
[5] http://www.haypocalc.com/wiki/Restoration_with_GREYCstoratio(...)
[6] http://www.greyc.unicaen.fr/Image/seminaires/seminaire_8_12_(...)
[7] http://www.ensicaen.fr/
# ImageMagick
Posté par Jean-Marc Spaggiari . Évalué à 1.
[^] # Re: ImageMagick
Posté par David Tschumperlé (site web personnel) . Évalué à 10.
Mais j'avoue que concevoir l'algorithme et le programmer a déjà été un sacré boulot.
L'intégrer dans Gimp ou ImageMagick demanderait du temps que je n'ai pas forcément. J'éspère en libérant les sources que justement quelqu'un pourra prendre un peu de temps pour le faire.
C'est ce qu'à fait Victor Stinner (greffon Gimp pour la version 1.0 de greycstoration), et on ne peut que le remercier !
[^] # Re: ImageMagick
Posté par djibb (site web personnel) . Évalué à 2.
Si il n'a pas envie ou ne peut pas mettre en GPL... rien ne l'y oblige. Or rentrer dans ces programmes necessiterait le passage a la GPL.
[^] # Re: ImageMagick
Posté par David Tschumperlé (site web personnel) . Évalué à 3.
Extrait de CeCILL :
"5.3.4 COMPATIBILITY WITH THE GNU GPL
The Licensee can include a code that is subject to the provisions of one of the versions of the GNU GPL in the Modified or unmodified Software, and distribute that entire code under the terms of the same version of the GNU GPL.
The Licensee can include the Modified or unmodified Software in a code that is subject to the provisions of one of the versions of the GNU GPL, and distribute that entire code under the terms of the same version of the GNU GPL.
"
David.
[^] # Re: ImageMagick
Posté par soulflyb (Mastodon) . Évalué à 2.
[^] # Re: ImageMagick
Posté par Victor STINNER (site web personnel) . Évalué à 2.
Il faut laisser le temps aux développeurs de plugin de supporter la nouvelle version (j'ai besoin d'aide pour le plugin Gimp !).
Haypo
# faites une news
Posté par cortex62 . Évalué à 4.
# Moi je veux bien mais ...
Posté par jaroug (site web personnel) . Évalué à -5.
Bref le contenu semble interessant mais il est pas vraiment mis en valeur.
[^] # Re: Moi je veux bien mais ...
Posté par lamiricore . Évalué à 5.
En plus il nous dit qu'il va pondre un tutorial et en plus une conférence: si ça ce n'est pas de la mise en valeur.
Pour le moment il relache la bestiole pour que Victor Stinner puisse mettre à jour rapidement son plugin pour Gimp (hein Victor stp)
Donc on remercie bien fort le monsieur, on arrête de raler en se contentant de la première version qui marche d'ailleurs fort bien et on attend sagement tout le bonheur en barre à venir
[^] # Re: Moi je veux bien mais ...
Posté par jaroug (site web personnel) . Évalué à -6.
Je l'ai bien lu rassure toi j'aibien précisé :
on nous propose pas les sources à part
Le monsieur fait une page à part = projet à part = source à part, pour moi ca fonctionne comme ca ...
En plus il nous dit qu'il va pondre un tutorial et en plus une conférence: si ça ce n'est pas de la mise en valeur.
Je suis tres content qu'il fasse un tutorial, moi je te parle d'un manuel, d'un programme correctement documenté, d'une option -h qui fonctionne.
Donc on remercie bien fort le monsieur, on arrête de raler en se contentant de la première version qui marche d'ailleurs fort bien et on attend sagement tout le bonheur en barre à venir
Moi je vais pas le remercier pour un truc qui fonctionne pas, je suis désolé mais j'ai pas pu l'utiliser n'ayant pas de document me permettant de comprendre son fonctionnement ...
Mais je promet que je ferais un journal pour le remercier quand tout ces problèmes seront réglé.
[^] # Re: Moi je veux bien mais ...
Posté par David Tschumperlé (site web personnel) . Évalué à 9.
Ce qui serait sympa de ta part, c'est que tu m'envoies (par e-mail) tes premières impressions d'utilisateur 'lambda' pour voir quels points je devrais éclaircir en premier dans le tutorial.
Je pensais attaquer directement le choix des options mais apparemment avoir la liste des options n'est déjà pas une mince affaire.
Pour te répondre rapidement, pour restaurer une image tu dois utiliser l'option -restore nom_de_fichier, et si tu mets l'option '-h' EN PLUS, tu obtient normalement la liste des options disponibles et un descriptif rapide dans ton terminal. Chez moi par exemple :
./greycstoration -restore toto.ppm -h
m'affiche :
-restore = submarine.jpg : Restore the image specified after '-restore'
-inpaint = NULL : Inpaint the image specified after '-inpaint'
-resize = NULL : Resize the image specified after '-resize'
-dt = 50 : Smoothing strength
-p = 0.8 : Contour preservation
-a = 0.8 : Smoothing anisotropy
-alpha = 0.5 : Noise scale
-sigma = 1 : Geometry regularity
-iter = 1 : Number of iterations
-scheme = true : Curvature-preserving scheme (0=false, 1=true)
-ng = 0 : Add gaussian noise before denoising
-nu = 0 : Add uniform noise before denoising
-ns = 0 : Add Salt&Pepper noise before denoising
-save = 0 : Iteration saving step
-visu = true : Enable/Disable visualization
-o = NULL : Output image
-prenormalize = false : Pre-normalization in [0,255]
-postnormalize = false : Post-normalization in [0,255]
-dl = 0.8 : Spatial integration step
-da = 45 : Angular integration step (in degrees)
-prec = 2 : Precision of the gaussian function
-interp = 0 : Interpolation type (0=Nearest-neighbor, 1=Linear,
Ce n'est pas très détaillé, mais ca permet déjà de jouer un peu avec l'algorithme.
En ce qui concerne les sources, je peux te donner ce lien :
http://prdownloads.sourceforge.net/cimg/CImg-1-11beta.zip?do(...)
qui te permettra de charger les sources du logiciel (fichier examples/greycstoration.cpp). Je prefère regrouper les sources avec CImg (http://cimg.sourceforge.net) plutôt que de les distribuer à part, avec les problèmes de mise à jour que ca peut poser.
David.
[^] # Re: Moi je veux bien mais ...
Posté par jaroug (site web personnel) . Évalué à 4.
Maintenant que tu nous as montré comment on pouvais lister les options :
c'est vraiment pas intuitif, autant lister l'intégralité des options ou encore préciser seulement les "grandes" options (-restore -inpaint et -resize) et indiquer que l'on peut obtenir leurs options (plus ou moins) propres en donnant -h [-]restore.
Mais devoir préciser le nom d'un image pour avoir de l'aide c'est anti-pratique.
Donc du coup j'ai pu joué avec ce logiciel :) j'ai fait quelques test sur du redimenssionement, ca semble tres concluant bien que je n'y connaisse vraiment rien dans ce domaine.
Au niveau du listing des options il manque aussi les encadrements de valeurs acceptés, par exemple -alpha je suppose que c'est entre 0 et 1 mais j'en suis pas sur.
Autre remarque, le traitement terminé, j'ai appuyé par mégarde sur la touche A (je voulais quitter :) et la, grosse catastrophe, la charge cpu est grimpé d'un seul coup, essentiellement occupé par Xorg et mon pager (c'est reproductible).
Bref comme le dit si bien Victor STINNER juste en dessous, merci beaucoup de "donner" cet algorithme au monde du libre.
Je me tiens à ta disposition tu peux m'envoyer l'adresse du/le tutorial à jaroug AT dlfp.org la redirection étant activé.
PS: à tout les rageux qui ont moinssé copieusement mes précédents commentaires parce qu'ils n'allaient pas dans le bon sens, allez vous mouchez et prendre votre biberon.
[^] # Re: Moi je veux bien mais ...
Posté par David Tschumperlé (site web personnel) . Évalué à 2.
C'est dispo maintenant en téléchargement.
# Merci, et besoin d'aide pour le plugin Gimp
Posté par Victor STINNER (site web personnel) . Évalué à 5.
Une simplification des paramètres est très appréciables, car il fallait beaucoup d'essai-erreur pour arriver un résultat optimum.
Par contre, j'ai plusieurs projets sur le feu, comme essayer de suivre un peu mes cours et finir mes projets pour mon école :-) Alors je peux pas donner de date pour le plugin, mais ça sera pas avant l'année prochaine (fin décembre quoi :-)).
Un coup de pouce serait appréciable. D'ailleurs, j'ai déjà reçu plusieurs contributions : patch pour éviter de gaspiller du temps à mettre à jour la barre de progression dans Gimp, patch pour éviter de manger tout le CPU (utilise nice), patch pour utiliser les autotools, traduction en russe, etc. D'ailleurs un ebuild a été proposé :
https://bugs.gentoo.org/show_bug.cgi?id=114577
En tout si je trouve du temps pour ça, je projette d'utiliser la dernière version de l'algo et d'en supporter toutes les fonctionnalités (le redimensionnement est très intéressant en particulier).
Haypo
[^] # Re: Merci, et besoin d'aide pour le plugin Gimp
Posté par tgl . Évalué à 2.
# ?
Posté par Bruce Le Nain (site web personnel) . Évalué à 2.
Puisque Greycstoration fait partie du packaging Cimg...
[^] # Re: ?
Posté par David Tschumperlé (site web personnel) . Évalué à 2.
CImg suit un cycle de développement tout à fait continu. Quand j'ai fini une release, je commence la prochaine, et elle est dispo sur le CVS tout de suite (et parfois aussi en archive). Ca a été le cas avec la 1.1.1beta, qui corrige déjà quelques bugs de la 1.1.0.
Greycstoration en lui-même ne va pas faire sortir une nouvelle release de CImg tout de suite, car en fait les releases sortent après un laps de temps suffisamment long entres elles (i.e un nombre significatifs d'améliorations dans CImg).
C'est pour cela aussi que j'ai voulu faire ce journal, car à mon avis, l'amélioration sur Greycstoration seul est conséquente, même si le coeur de CImg n'a pas fondamentalement changé.
# optimisations
Posté par Pierre . Évalué à 1.
15sec en moyenne par image, ca fait long, pour ameliorer sa phototeque de telephone portable..
Tu pense que tes algos peuvent etre bien optimises, avec mmx/altivec/SIMD?
[^] # Re: optimisations
Posté par David Tschumperlé (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.