- David Tschumperlé (dtschump)
- Page perso
- Compte créé le 20 juillet 2004
- Vu le jeudi 24 juillet
Format RSS des journaux- dtschump AT dlfp.org
- Contacter cet utilisateur
Dernière(s) dépêche(s)
[Toutes] :
Derniers commentaire(s) [Tous] :
- Re: AC : Aurélie Charon (Score : 4)
- AC : Albanel Christine (Score : 6)
- Re: Version 0.2 disponible (Score : 2)
- Re: Version 0.2 disponible (Score : 4)
- Version 0.2 disponible (Score : 6)
- Re: Rapport avec les travaux précédents ? (Score : 7)
- Re: *WorkBench* (Score : 4)
- Re: Mais c'est très bon, ça! (Score : 2)
- Re: Mais c'est très bon, ça! (Score : 2)
- Re: Utilisation ? (Score : 3)
- Re: mouais (Score : 1)
- RMS à l'ESSI (Score : 2)
- Plug-in GIMP mis à jour (Score : 6)
- Re: Détramage de scan de livre (Score : 4)
- Re: Onglet (Score : 3)
- vidéo (Score : 3)
- Re: Tu as de la chance (Score : 10)
- Re: Remonter la pente (Score : 2)
- Re: Digikam (Score : 10)
- Re: Merci (Score : 7)
Inrcast : Un autre outil de manipulation d'images.
Posté le 04 juin 2008Pour manipuler les images 2D en ligne de commande, on connait tous le magnifique programme convert proposé dans la boite à outils ImageMagick [1]. Dans un genre très (très) proche, il y a aussi gm de la boite à outils GraphicsMagick [2].
Je vous propose aujourd'hui de découvrir inrcast [3], un outil open-source pour manipuler les données images 2D, 3D, et les vidéos. Quel intérêt me demanderez-vous ? Il y a quelques différences importantes avec les outils cités précédemment :-
inrcast permet de gérer naturellement des listes d'images volumiques multispectrales, donc in-fine de manipuler des images à grande dimensionnalité (par exemple, des séquences d'images médicales volumiques qu'on peut trouver en IRM de perfusion, ou encore des séquences d'images avec plus de 3 canaux qu'on peut trouver en imagerie satellitaire méteo par exemple), ce que ne permet pas ImageMagick. Bon bien sûr, les images couleurs 2D rentrent aussi dans ce cadre.
Du coup, inrcast est très pratique pour décomposer/isoler les frames d'une vidéo ou les slices d'un volume en plusieurs fichiers images 2D, ou au contraire de les rassembler dans des fichiers volumiques.
inrcast est typé, c'est à dire qu'il sait gérer les différents types de stockage des valeurs de pixels (unsigned char, short, float, etc...). On peut par exemple l'utiliser pour convertir une image 3D volumique en format Analyze à valeurs flottantes en un format Tiff multipage 16 bits. L'utilisateur a le choix de spécifier le type de pixel d'entrée à considérer et le type de sortie. Assez pratique aussi quand on reçoit des images dans un format un peu bizarre et qu'on veut vite les remettre dans un format avec lequel on a l'habitude de travailler.
incast comprend un module de visualisation/exploration d'images simple et pratique à utiliser. On peut zoomer et se balader dans une image 2D/3D ou une suite d'image assez facilement, en utilisant la souris et/ou le clavier. C'est un peu comme display de ImageMagick, mais pour des images de dimensions plus grandes.
- inrcast sait lire les fichiers d'objets 3D .off (format GeomView). Oui ça sert pas à grand chose, mais il fallait le dire, c'est bonus !
- ImageMagick : http://www.imagemagick.org/
- GraphicsMagick : http://www.graphicsmagick.org/
- Inrcast : http://cimg.sourceforge.net/inrcast/
- Medcon : http://xmedcon.sourceforge.net/
- FFMPEG : http://ffmpeg.mplayerhq.hu/
Il faut souligner que inrcast peut s'appuyer en partie sur ImageMagick ou GraphicsMagick si ceux-ci sont installés, mais aussi sur XMedcon [4] (pour lire les images au format dicom) ou encore FFMPEG [5] (pour lire/écrire les séquences vidéos).
Bref, c'est un programme potentiellement assez pratique pour les traiteurs d'images de tout poils. C'est une version 0.1, donc encore assez expérimentale mais tout à fait fonctionnelle. A noter que la compilation des sources sont dispo met *beaucoup* de temps et demande *beaucoup* de mémoire si les optimisations sont activées. N'hésitez pas à donner des retours d'utilisation ou des suggestions. (Je cherche quelqu'un qui saurait faire un paquet pour inrcast en passant :) )
** Références :
> Lire le journal (20 commentaires, moyenne: 3,4).
Pour ceux qui s'ennuient le mardi avant midi.
Posté le 20 mai 2008Que faire alors ? Moi j'aime bien profiter de ce moment pour (re)découvrir des open-sourcitudes intéressantes que j'ai vu passer sans avoir eu le temps de bien les regarder.
Et l'autre coup, je suis tombé sur des démos précompilées d'utilisation de "antigrain", une (super) bibliothèque C++ pour faire du rendu graphique [1]. Et y a pas à dire, une petite démo live précompilée facile à charger et à exécuter, ca pète ! Y a rien de mieux pour donner un rapide aperçu des capacités d'un projet, et l'envie d'en découvrir davantage.
J'ai donc fait pareil pour la bibliothèque "CImg" [2] dont je m'occupe, avec des binaires précompilés Linux/Win32/Mac PPC. Voila, donc si vous voulez tuer le temps relativement rapidement, en regardant des trucs multicolores et flashy qui bougent partout, vous pouvez charger et tester les binaires précompilés de la démonstration principale fourni dans le package, peut-être que ça vous donnera quelques envies ou idées, ou que ça vous amusera.
Egalement, si vous avez d'autres liens sur ce genre de petits binaires rigolos et 'self-contained', n'hésitez pas à partager, ca m'intéresse ! (à l'exception des virus et autres trojans qui sont certes rigolos mais à petites doses...)
[1] Antigrain : http://www.antigrain.com (le site a l'air malheureusement cassé au moment où j'écris ces lignes).
[2] The CImg Library : http://cimg.sourceforge.net
[3] Code source de la démo CImg : http://cimg.cvs.sourceforge.net/cimg/CImg/examples/CImg_demo(...)
> Lire le journal (4 commentaires, moyenne: 3).
Captcha!
Posté le 23 avril 2008En lisant ce journal sur le spam, j'ai repensé à la méthode des 'captchas' utilisés sur les blogs, ces espèces d'images contenant des symboles que l'on demande au posteur d'un message de retaper pour confirmer qu'il est bien un humain (ou au moins quelque chose d'approchant) [1]. J'ai cherché un peu si il y avait des commandes toutes faites qui permettraient de générer des captchas de manière simple ('pour les nuls'), et j'ai pas vu grand chose, donc j'ai essayé de m'y coller.
Ca donne Captcha! [2], un petit programme (400ko chez moi) qui genère une chaine de caractères aléatoires et une image correspondante que l'on peut sauver sous un format quelconque (surtout quand on a ImageMagick d'installé). La chaine réponse est également retournée sur la sortie standard lorsque l'on lance le programme. Quelques options permettent de customiser un peu la bête (lancer avec '-h' pour la liste des options disponibles).
Le programme a très peu de dépendances externes pour fonctionner donc ca devrait pouvoir tourner un peu près partout sans souci. En plus le code est très très court [3] donc peut être facilement repris et adapté si le coeur vous en dit. Voila c'est juste une petite maquette, en fait je voulais juste savoir si ca pouvait servir à quelque chose 'en vrai' ?
Vos avis sont les bienvenus.
[1] http://en.wikipedia.org/wiki/Captcha
[2] Site avec exemples : http://www.greyc.ensicaen.fr/~dtschump/captcha/
[3] Code source : http://cimg.cvs.sourceforge.net/cimg/CImg/examples/captcha.c(...)
> Lire le journal (60 commentaires, moyenne: 3,8).
"Nettoyage" d'images : GREYCstoration 2.8
Posté le 07 mars 2008Je me permets d'écrire un journal pour signaler que la version 2.8 de GREYCstoration vient de sortir.
GREYCstoration [1] est un programme libre qui a pour but principal le débruitage d'image. Il est fourni sous forme d'un outil en ligne de commande, mais également sous forme d'un plug-in permettant son utilisation sous GIMP. Sous sa forme la plus brute (ligne de commande), il permet aussi le redimensionnement et l'inpainting d'images (reconstruction de zones manquantes).
Un nouveau mode de "nettoyage d'image" est apparu dans cette version 2.8, avec l'option '-clean'. Ce mode est basé sur l'utilisation d'une EDP de diffusion appliquée dans l'espace des patchs de l'image (voir [2] pour plus d'infos sur la technique employée). Cette nouvelle option vient renforcer le mode '-restore' déjà utilisable dans les versions précédentes pour tenter de débruiter des images. Les deux modes donnent des résultats différents, il n'y a pas forcément de meilleur mode, tout dépend du type de bruit présent dans l'image à traiter. De mon point de vue, le mode '-clean' permet de garder des détails fins même lorsque le bruit à supprimer est très granuleux (voir [3] et [4]). L'intérêt ici, c'est surtout d'avoir encore un peu plus de choix pour traiter vos images !
Pour le moment, ce mode "nettoyage" n'existe que pour la version "ligne de commande" de GREYCstoration. J'aimerais bien sûr que le plug-in GIMP bénéficie de ce nouvel algorithme, mais je dois bien admettre que je suis une bille en programmation d'interfaces graphique. En gros, il faudrait ajouter un nouvel onglet dans l'interface du plugin, permettant de choisir l'un ou l'autre des mode 'restore' ou 'clean'. Je vais essayer de voir comment faire, mais çà risque de me prendre beaucoup de temps. Si quelqu'un est plus expérimenté, je veux bien de l'aide ! Pour le programmeur, GREYCstoration se présente sous la forme d'une API très simple à appeler (le plug-in existant l'utilise déjà d'ailleurs). Il y a juste une nouvelle fonction qui est apparue dans la version 2.8 de cette API, et qu'il faudrait interfacer dans le plug-in (avec deux trois paramètres à laisser choisir par l'utilisateur).
GREYCstoration étant basé sur la bibliothèque libre CImg [5], il est naturellement multi-plateforme. Je recherche donc également des volontaires pour la compilation de GREYCstoration 2.8, sur différentes plateformes auxquelles je n'ai pas accès. Si le coeur vous en dit...
Voila je crois que j'ai tout dit, n'hésitez pas à me donner des retours sur ce petit logiciel,si vous avez le temps de tester (l'installation de ImageMagick est vivement conseillé pour pouvoir lire des formats d'images variés).
[1] Site web de GREYCstoration : http://www.greyc.ensicaen.fr/~dtschump/greycstoration/
[2] Rapport de recherche expliquant la méthode de nettoyage d'image : http://www.greyc.ensicaen.fr/~dtschump/data/cahier_greyc08-0(...)
[3] Exemple d'utilisation du nouveau mode de débruitage : http://www.greyc.ensicaen.fr/~dtschump/greycstoration/img/re(...)
[4] Autre exemple : http://www.greyc.ensicaen.fr/~dtschump/greycstoration/img/re(...)
[5] CImg : C++ Template Image Processing Library : http://cimg.sourceforge.net
> Lire le journal (19 commentaires, moyenne: 3,4).
Pour manipuler des images en C++, il suffit de ...
Posté le 25 août 2007Développée d'abord à l'INRIA Sophia-Antipolis, puis dans l'équipe IMAGE du laboratoire CNRS GREYC de Caen [2], cette bibliothèque se destinait en premier lieu aux chercheurs, ingénieurs et étudiants du domaine du traitement d'images et de la vision par ordinateur. De par sa conception très accessible et de par sa généricité, elle peut également séduire le programmeur ayant besoin de manipuler plus occasionnellement des images dans ses propres programmes.
J'ai déjà évoqué CImg dans ces pages (il y a un peu plus d'un an [3] avec la version 1.1.5), et je voudrais partager ici mon expérience personnelle (et mon enthousiasme) pour ce développement libre qu'est CImg (cela fait suite en quelque sorte au journal/questionnaire [4], très instructif).
En 1999, CImg a démarré (comme beaucoup de projets libres je suppose) en premier lieu pour m'offrir des fonctionnalités que je ne trouvais pas dans les bibliothèques existantes d'alors. La mettre à disposition de manière libre en 2003 (il faut remercier l'INRIA et le CNRS à ce propos pour leur grande ouverture) a été dans un premier temps une opportunité de valoriser de manière rapide et à-priori peu contraignante le travail de programmation fait durant ma thèse. Mais j'ai pu par la suite découvrir que développer une bibliothèque libre "suffisamment" visible (i.e hébergée sur Sourceforge ou consorts), aussi modeste soit-elle, permet en réalité de toucher et d'intéresser très rapidement un nombre important de personnes, curieuses par nature. Ca a deux conséquences directes :
- D'un point de vue humain, c'est quand même très sympathique (si l'on met de côté les mails d'insultes), de pouvoir dialoguer avec des gens intéressés de tous pays via les forums ou le mail. Ca se matérialise parfois par la réception de quelques cartes postales et même quelques dons, mais surtout ca donne des contributions et des retours de bugs très instructifs. Par exemple, en un an, les 8 versions de CImg qui se sont succédées n'auraient pas pu se faire dans ce laps de temps sans tous ces gens qui ont pris le temps de s'intéresser à ce projet, merci à eux.
De temps en temps on peux rencontrer les utilisateurs, et c'est toujours un moment super sympa, surtout quand çà peut se passer devant une bonne bière. Merci à propos, à Jean-Marie Favreau et les organisateurs des RMLL'07 pour leur invitation à Amiens.
- D'un autre côté, avoir des utilisateurs, c'est aussi se donner des contraintes de qualité plus serrées, et le projet, qui au départ manque forcément de finition, doit devenir de plus en plus cohérent et bien fini. C'est un apprentissage très utile qui amène beaucoup d'expérience et qui demande également beaucoup d'investissement personnel (vive les week ends).
Bref, tout çà pour dire que créer ou contribuer à un projet libre est très positif et instructif pour le contributeur, et pas seulement pour les utilisateurs potentiels.
Et quand on a un coup de mou, on se dit que peut-être c'est en train de dépanner quelqu'un ici ou là, et en général, ça repart (et c'est moins cher qu'un Mars).
Donc, n'hésitez pas à vous lancer si vous avez un peu de temps libre. Et si vous voulez contribuer à CImg, en envoyant par exemple de nouveaux exemples, vous êtes les bienvenus (si quelqu'un veut programmer l'algorithme décris dans le journal [5], ca m'intéresse...).
David.
[1] The CImg Library : http://cimg.sourceforge.net/
[1'] Les exemples de la bibliothèque, compilés pour Linux 32 bits :
http://prdownloads.sourceforge.net/cimg/CImg_linux32_elf.zip(...)
[2] L'équipe IMAGE du GREYC :
http://www.greyc.ensicaen.fr/EquipeImage/
[3] Journal, Sortie de CImg 1.1.5 :
http://linuxfr.org/~dtschump/22223.html
[4] Journal, Et vous, avez-vous déjà participé à un LL?
http://linuxfr.org/~windu2b/25097.html
[5] Journal : Un redimensionnement de science-fiction :
http://linuxfr.org/~patrick_g/25149.html
> Lire le journal (16 commentaires, moyenne: 3,1).
Plug-in de débruitage "GREYCstoration" pour GIMP
Posté le 30 mars 2007Le nouveau plug-in GREYCstoration bien sûr !
Un gentil programmeur (Grzegorz Szwotch) s'est dévoué pour créer un plug-in GIMP pour la dernière version de GREYCstoration [1] !
Pour rappel, GREYCstoration est un algorithme open-source utilisant des méthodes non-linéaires pour la restauration d'images (quelques démos ici : [2] )
Il existait un vieux plug-in GIMP (fait par Victor Stinner) mais il n'était pas à jour et n'était pas très pratique à utiliser (gros consommateur de mémoire, lenteur de calcul...). Ici, le nouveau plug-in utilise la toute dernière API C++ de GREYCstoration, ce qui permet un code très compact, facilement maintenable (et extensible pour le futur). Cela exauce donc un de mes souhaits les plus chers [3] !
Le calcul est maintenant multi-threadé et peut utiliser plusieurs CPUs si diponibles. Un mode 'preview' permet de régler les paramètres avant de lancer le calcul sur toute l'image. Voila qui permet d'utiliser l'algorithme même sans être un pro de la ligne de commande.
Bref, c'est une très bonne nouvelle et une bonne occasion d'étendre un peu les possibilités d'amélioration d'images de GIMP. N'hésitez pas à tester et faire des retours d'utilisation. L'archive se trouve sur le site principal [1], rubrique 'download'.
PS : Si il y a un volontaire pour compiler le plug-in pour Windows...
PS2 : Et pour finir, Merci Grzegorz, merci le logiciel libre.
David.
[1] GREYCstoration : http://www.greyc.ensicaen.fr/~dtschump/greycstoration/
[2] Exemples de débruitage : http://www.greyc.ensicaen.fr/~dtschump/greycstoration/demons(...)
[3] Appel à contribution : http://linuxfr.org/~dtschump/23659.html
> Lire le journal (6 commentaires, moyenne: 5,2).
Sortie de GREYCstoration 2.5
Posté le 05 mars 2007GREYCstoration [1] est un outil libre permettant de débruiter, interpoler ou redimensionner des images couleurs 2D. Il fonctionne en ligne de commande, et est disponible pour les systèmes Unix, Mac et Windows (licence CeCILL).
L'algorithme principal utilisé se base sur les EDP (équations aux dérivées partielles) de diffusion anisotropes [2], qui permettent de lisser l'image tout en considérant localement la géométrie des contours. Ce programme est développé dans l'équipe IMAGE du laboratoire GREYC (Unité de Recherche CNRS de l'université de Caen) [3].
Une nouvelle version estampillée 2.5 est sortie, et apporte des nouveautés intéressantes :
- Une utilisation mémoire mieux gérée : L'occupation mémoire était clairement un frein important pour le traitement de 'grosses' images avec l'ancienne version de GREYCstoration. L'algorithme est maintenant beaucoup plus économe, et propose un nouveau mode 'vignettage' activé par défaut, permettant de traiter l'image par portions successives. Cela permet d'économiser jusqu'à plusieurs centaines de mégaoctets d'utilisation mémoire sur certaines grosses images.
Un petit test rapide de débruitage d'une image de dimension 3264x2448 donne :
Ancienne version (2.4.2) : Utilisation mémoire 654 Mo.
Nouvelle version (2.5) : Utilisation mémoire 98 Mo.
Soit un gain grosso-modo de 6 pour un résultat visuellement équivalent. Le temps de calcul entre les deux versions est comparable si on a une capacité mémoire suffisante, mais devient très avantageux en faveur de la dernière version 2.5 avec des 'petites' config, puisqu'on évite généralement le swap sur le disque ! - Un mode 16bits entier/32 bits flottants, permettant de gérer facilement les images à 16bits par composantes ou les images codées en flottants.
- Une refonte globale de l'algorithme, notamment avec une meilleure factorisation du code et la création d'une API C++ simplifiée. Du point de vue d'un programmeur, cela se traduit par une plus grande facilité d'intégration de GREYCstoration dans des logiciels open-sources tiers. Le code source exemple [4] utilisant cette API permet de bien comprendre la facilité de la chose. J'espère que cela permettra d'accélerer encore un peu plus l'intégration propre de cette dernière version dans un plug-in GIMP [5].
Voila, n'hésitez pas si vous voulez tester, et me donner des retours d'utilisations de cette nouvelle version. ou des suggestions... Merci.
Liens relatifs :
[0] Exemples d'utilisation de GREYCstoration :
http://www.greyc.ensicaen.fr/~dtschump/greycstoration/demons(...)
[1] Site web de GREYCstoration :
http://www.greyc.ensicaen.fr/~dtschump/greycstoration/
[2] Publication décrivant l'algorithme utilisé :
http://www.greyc.ensicaen.fr/~dtschump/data/ijcv2006.pdf
[3] Site web de l'équipe IMAGE du GREYC :
http://www.greyc.ensicaen.fr/EquipeImage/
[4] Exemple d'utilisation de l'API C++ de GREYCstoration :
http://cimg.cvs.sourceforge.net/cimg/CImg/examples/greycstor(...)
[5] Plug-in GIMP, appel à contribution :
http://linuxfr.org/~dtschump/23659.html
> Lire le journal (6 commentaires, moyenne: 4,3).
GREYCstoration : Appel à contribution
Posté le 31 janvier 2007J'ai une info et un appel à contribution à proposer ici.
L'info, c'est que la dernière version 1.1.8 de CImg est sortie vendredi dernier. CImg [1] est une bibliothèque libre C++ pour le traitement d'images génériques, simple à utiliser et multi-plateforme, distribuée sous licence CeCILL.
Le package contient de nombreux exemples d'utilisation (voir [2] pour quelques screenshots et videos en ligne), et en particulier l'algorithme GREYCstoration [3] qui permet de débruiter, inpainter et redimensionner des images. Cet algorithme est basé sur des recherches assez récentes sur les EDP de diffusion [3.5] que j'ai menées au laboratoire GREYC, UMR 6072 du CNRS, implanté à Caen.
Cet algorithme a été porté il y a de cela quelque temps par Victor Stinner dans un plug-in GIMP [4] pour le débruitage d'images. Or depuis ce premier portage (il y a presque 2 ans maintenant), GREYCstoration (l'algorithme) a pas mal évolué, en particulier en terme de vitesse d'exécution (x3!) et de qualité de résultats. Victor m'a confirmé n'avoir plus le temps de s'occuper de ce plug-in, et son développement est donc gelé sur la toute première version de l'algo, ce que je trouve vraiment dommage !
J'ai bien essayé de me plonger un peu dans le code de Victor pour essayer de mettre à jour l'algo, mais j'avoue que la programmation de plug-in et autres GUI n'est absolument pas dans mon domaine de compétences, en plus d'avoir très peu de temps pour cela.
Par contre, j'ai créé une extension pour CImg, qui permet de faciliter l'intégration de GREYCstoration dans des applis tierces. Un exemple d'utilisation minimal [5] permet de se rendre compte de la simplicité d'utilisation.
La situation est donc la suivante :
- Il y a un plug-in GIMP déjà fonctionnel, mais pas très récent, contenant la GUI + le code de l'algorithme de débruitage (l'ancien, ré-organisé dans sa structure par Victor).
- Il y a une extension GREYCstoration de CImg pouvant être appelé simplement de n'importe quel programme C++ externe (un simple include et un appel à une méthode). Cette extension est à priori assurée d'être toujours à jour (c'est moi qui la maintient).
Ma question est donc :
Y-aurait-il quelqu'un(e) interessé(e) pour essayer de recoller ces deux bouts, afin de fournir un plug-in GREYCstoration pour GIMP qui pourrait se mettre facilement à jour en mettant simplement à jour CImg et en recompilant le plug-in ? En gros, il faudrait enlever le code de l'algo dans l'ancien plug-in, et interfacer avec l'extension GREYCstoration de CImg à la place. A noter que l'extension est prévue pour fonctionner de manière multi-threadé et renvoit notamment une indication sur l'état d'avancement du processus. Je ne pense pas que ca soit particulièrement compliqué mais faut mettre les doigts dans le cambouis de GIMP un peu quand même (si j'avais 10 ans de moins... :) ).
Voila, j'espère que ca interessera quelqu'un ! Je pense vraiment qu'avoir une méthode libre de débruitage d'images performante et customisable pour GIMP serait un super truc, avec une bonne visibilité. Si ca vous tente, contactez moi (e-mail boulot) je suis bien sûr prêt à donner un coup de main pour que ca avance au plus vite.
Merci de votre attention.
David.
--------- Références ------------
[1] CImg : http://cimg.sourceforge.net
[2] CImg Screenshots : http://cimg.sourceforge.net/screenshots.shtml
[3] GREYCstoration : http://www.greyc.ensicaen.fr/~dtschump/greycstoration/demons(...)
[3.5] GREYCstoration, le principe :
http://www.greyc.ensicaen.fr/~dtschump/data/ijcv2006.pdf
[4] Port de GREYCstoration pour GIMP : http://linuxfr.org/~haypo/17437.html
[5] Code source pour utiliser l'extension GREYCstoration de CImg : http://cimg.cvs.sourceforge.net/cimg/CImg/examples/greycstor(...)
> Lire le journal (30 commentaires, moyenne: 2,5).
Sortie de CImg 1.1.5
Posté le 19 juillet 2006CImg est une petite bibliothèque générique C++ open-source développée initialement pour le traitement d'images 2D ou 3D [1], très légère, multi-plateforme et facile à prendre en main. Elle est développée dans l'équipe IMAGE du laboratoire CNRS GREYC à Caen [2]. Elle a la particularité de tenir dans un seul fichier 'CImg.h' [3]. Ce dernier point, décrié par certains, est pourtant essentiel, et permet une simplicité d'utilisation très appréciable et qui ne se dément pas au fil des sorties successives.
La version 1.1.5 sort aujourd'hui, et apporte comme toujours son lot de nouveautés et corrections de bugs. Quelques points notables sont cependant à souligner :
- Le changement de licence pour le code source de la bibliothèque, qui utilise maintenant la nouvelle variante CeCiLL-C, proche de la LGPL. Le reste des fichiers (exemples, documentation) reste en CeCiLL classique (compatible GPL). Ainsi la bibliothèque CImg en elle-même peut être utilisé de manière moins restrictive.
- GREYCstoration [3], petit utilitaire de restauration d'images en ligne de commande basé sur CImg passe du coup en version 2.4, avec quelques optimisations supplémentaires. Il reste par contre en version CeCiLL et donc complètement "libre".
- CImg peut maintenant gérer les modes plein-écran sous Unix, grâce à l'extension Xrandr qui peut être utilisée de manière optionnelle. C'était précédemment possible seulement sous Windows.
CImg peut ainsi servir à créer de petits jeux ou animations en plein écran, les performances générales d'affichages ayant été également améliorées. - Un système de plug-ins permet très facilement d'ajouter des fonctions supplémentaires à l'intérieur même de la bibliothèque, sans avoir à modifier le code source. Quelques plug-ins ont déjà été proposés par des contributeurs extérieurs, et j'espère que cet aspect va encore se développer
Pour finir, il est important de souligner que CImg essaye de rester minimal, dans le sens ou il est toujours possible de le compiler sans bibliothèques autres que celles du C++ standard.
C'est une bibliothèque en fait très modulable malgré sa structure en un seul fichier, et l'utilisation de bibliothèques extérieures permet simplement de lui activer des fonctionnalités spécifiques (pour l'affichage notamment).
Bref, une petite bibliothèque a essayer pour tous ceux qui s'intéressent au traitement et à l'affichage d'images en C++.
[1] Bibliothèque CImg : http://cimg.sourceforge.net
[2] Equipe GREYC/Image : http://www.greyc.ensicaen.fr/EquipeImage/
[3] Le code source de CImg.h : http://cimg.cvs.sourceforge.net/cimg/CImg/CImg.h?view=markup
[4] GREYCstoration : http://www.greyc.ensicaen.fr/~dtschump/greycstoration/
> Lire le journal (39 commentaires, moyenne: 2,3).
Sortie de CImg 1.1.3
Posté le 01 avril 2006Cette petite bibliothèque générique C++ pour le traitement d'images [1], développée dans l'équipe IMAGE du GREYC (laboratoire mixte CNRS-ENSICAEN-Université de Caen [2]) poursuit sa lancée, avec toujours dans l'idée de simplifier la vie du programmeur intéréssé par le domaine de l'image :
Cette bibliothèque , définie dans un seul (gros) fichier en-tête C++ "CImg.h", contient peu de classes différentes (5 au total), ne dépend que d'un minimum de bibliothèques externes (la plupart du temps présentes par défaut sur toutes les distributions), est multi-plateforme, et surtout est particulièrement simple et intuitive d'utilisation. Tout cela sans pour autant sacrifier ses fonctionnalités. En résumé, il suffit simplement d'ajouter un #include "CImg.h" dans son programme et on peut commencer à s'amuser !
Pas mal de nouveautés dans la version 1.1.3, avec notamment l'apparition de possibilités d'affichage d'objets 3D dans les fonctions de tracés, ainsi que des fonctions de polygonisation de fonctions implicites (algos des marching squares et marching cubes), ce qui permet de vraiment mieux appréhender les images volumiques par exemple. Quelques exemples utilisant ces nouvelles fonctionnalités d'affichages ont été rajoutés dans le répertoire 'examples/' : affichage d'une image comme une surface 3D, lissage d'une surface implicite en 3D, metaballs, etc...
CImg est la bibliothèque utilisée par GREYCstoration [3], petit logiciel de débruitage d'images. En utilisant CImg, GREYCstoration peut s'écrire avec seulement 500 lignes de code ! La lecture des fichiers d'exemples fournis dans le package de CImg permet de bien se rendre compte que l'on peut très souvent écrire des programmes concis à l'aide de cette bibliothèque (voir aussi le tutorial [4] ), ce qui permet une relecture et un éventuel débugage bien plus faciles.
Pour finir, la notion de généricité utilisée par CImg permet de traiter indifféremment des image 2D ou 3D (volumiques) multi-valuées (ou chaque pixel/voxel peut être un vecteur de dimension quelconque), avec des données également de type quelconque, ce qui permet au final de couvrir pas mal de besoins usuels [5].
Bref, vous l'avez compris, avec ce journal je passe un petit coup de pub pour CImg, et je vous propose d'aller tester cette nouvelle version de la bibliothèque juste par curiosité, vous serez peut-être envoûtés !
[1] Bibliothèque CImg : http://cimg.sourceforge.net
[2] Equipe GREYC/Image : http://www.greyc.ensicaen.fr/EquipeImage/
[3] GREYCstoration : http://www.greyc.ensicaen.fr/~dtschump/greycstoration/
[4] Tutoriel : http://cimg.sourceforge.net/reference/group__cimg__tutorial.(...)
[5] Quelques applications de CImg : http://cimg.sourceforge.net/screenshots.shtml
> Lire le journal (2 commentaires, moyenne: 3,5).
GREYCstoration 2.0
Posté le 07 décembre 2005La 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/
> Lire le journal (19 commentaires, moyenne: 2,5).
Sortie de CImg 1.1.0.
Posté le 18 novembre 2005CImg 1.1.0 est sortie !
CImg est une petite bibliothèque C++ open source pour le traitement d'images, sous licence CeCiLL (licence commune CNRS/INRIA/CEA), développée dans l'équipe Image du laboratoire CNRS GREYC (ENSICAEN, à Caen/France), et initialement commencée à l'INRIA (Sophia-Antipolis).
URL de la bibliothèque CImg :
http://cimg.sourceforge.net
URL de l'équipe (quelques problèmes de serveur pour le moment...)
http://www.greyc.ensicaen.fr/EquipeImage/
Elle est très simple à utiliser, légère, multi-plateforme, et peut aider les étudiants ou chercheurs travaillant dans le domaine du traitement d'images (et tous les autres, qui veulent bidouiller des images pour s'amuser). Elle contient des algorithmes courants, mais aussi quelques méthodes avancées de traitement.
En particulier, l'algorithme de restauration d'images GREYCSTORATION, dont une démo est disponible à l'adresse :
http://www.greyc.ensicaen.fr/~dtschump/greycstoration/demo.h(...)
et qui a été récemment intégré comme plug-in dans :
- GIMP : http://www.haypocalc.com/wiki/Plugin_Gimp_GREYCstoration
(merci Victor Stinner !)
- Krita : http://koffice.kde.org/krita/
(merci Boudewijn Rempt !)
- Digikam : http://www.digikam.org
(merci Gilles Caulier !)
CImg continue son petit bonhomme de chemin depuis plus de 4 ans maintenant, grâce aux retours instructifs des utilisateurs. J'espère que ça va pouvoir continuer comme ça, car bien évidemment, beaucoup de choses restent à faire. Alors si vous êtes intéressés et que vous avez des beaux algos à proposer ou des exemples d'utilisation un peu originaux à faire partager, n'hésitez pas à me contacter sur le forum de CImg, pour les prochaines releases.
> Lire le journal (13 commentaires, moyenne: 2,9).
CImg1.0.8beta1 et Plugin GIMP ?
Posté le 23 février 2005Quelques nouvelles de CImg [1], une bibliothèque C++ pour le traitement d'images :
Une version 1.0.8beta1 est dispo depuis ce matin, elle corrige quelques bugs
et rajoute des exemples de code, dont celui de GREYCstoration [2], qui est
une technique rapide de restauration et d'interpolation d'images que j'ai développé en
partie dans l'équipe IMAGE du GREYC (CNRS,UMR 6072) [3], et en partie en utilisant
mes travaux précédents faits à l'INRIA.
Un rapport de recherche est sorti à ce sujet, et il est donc tout à fait possible de
reproduire et d'utiliser l'algorithme présenté dans ce papier (disponible en PDF sur [2] ).
Comme ce nouvel algo est relativement rapide comparé aux approches équivalentes
(par EDP pour les connaisseurs) et qu'il donne de bons résultats [4], je pense qu'il
pourrait être intégré dans GIMP en plugin, par exemple.
Je n'ai pas spécialement les compétences ni le temps pour m'en charger actuellement,
mais si quelqu'un est intéressé par le projet.... Evidemment je serais dispo pour répondre à toute
question sur l'algo en lui-même.
N'hésitez pas à me contacter !
[1] http://cimg.sourceforge.net(...)
[2] http://www.greyc.ensicaen.fr/~dtschump/greycstoration(...)
[3] http://www.greyc.ensicaen.fr/EquipeImage(...)
[4] http://www.greyc.ensicaen.fr/~dtschump/greycstoration/demo.html(...)
> Lire le journal (8 commentaires, moyenne: 2,8).
CImg Library 1.0.7 et licence CeCILL
Posté le 02 décembre 2004très simple à utiliser, et multiplateforme :
http://cimg.sourceforge.net(...)
J'avais commencé la programmation de cette bibliothèque durant
ma thèse à l'INRIA Sophia-Antipolis. Etant maintenant au CNRS,
je continue de la développer et de la maintenir. J'ai quand même l'impression que quelques personnes l'utilisent ( y a moi déjà ...)
Hé bien, la nouvelle version 1.0.7 est désormais distribuée sous licence CeCILL (la licence libre du CEA-CNRS-INRIA, http://www.cecill.info(...)).
Voila donc un produit 100% CNRS-INRIA :)
Pratique pour créer rapidement de petites applications de traitement d'images (prototypage d'algorithmes, visualisation et tracé, petits jeux, etc..). On peut faire pas mal de choses avec, ça pourrait peut-être intéresser les étudiants, enseignants, chercheurs ou simplement les curieux qui font du C++.
> Lire le journal (12 commentaires, moyenne: 2,3).
Restauration d'image au CNRS
Posté le 19 novembre 2004(voir http://linuxfr.org/2004/07/20/16865.html(...) ).
Une des limitations principale de cet algo était le temps de calcul, qui était trop important pour espérer l'intégrer dans un quelconque logiciel de dessin.
Nous avons pu trouver une implémentation très rapide de l'algorithme qui permet de passer de plusieurs minutes par images à quelques secondes. J'ai également pu améliorer la précision des calculs, et donc de la restauration.
J'ai créé une page web qui récapitule ces derniers résultats, et
qui propose de télécharger un exécutable (pour Linux et/ou Windows) de l'algorithme. Elle se trouve à l'adresse :
http://www.greyc.ensicaen.fr/~dtschump/greycstoration/(...)
J'espère avoir des échos positifs de ce nouvel algorithme et pourquoi pas envisager très sérieusement de l'intégrer dans GIMP, maintenant que le temps de calcul est tout à fait raisonnable.
> Lire le journal (28 commentaires, moyenne: 3,6).
Cette page donne des informations sur l'utilisateur dtschump
telles que ses derniers commentaires, journaux, forums, date
de création, etc.
