Quelques précisions sur la bibliothèque de traitement d'images 'INRIA'

Posté par  (site web personnel) . Modéré par Amaury.
Étiquettes :
0
22
juil.
2004
Audiovisuel
David Tschumperlé, l'auteur de la bibliothèque graphique de l'INRIA Sophia-Antipolis, nous demande publier un complément d'information au sujet de la dépêche que nous avons publiée le 20 Juillet 2004.

Merci à lui pour toutes ces précisions.

Bonjour,

Vous avez publié le 20 Juillet 2004 une dépêche intitulée
"Une bibliothèque graphique de l'INRIA Sophia-Antipolis sous GPL".
Cela a eu un effet très important sur la diffusion de cette bibliothèque, et je vous en remercie. Ayant lu les commentaires associés à cette dépêche, j'aimerais néanmoins éclaircir quelques points qui sont restés sans réponses :

- À propos de la disponibilité, et la licence :

La page de démo sur les EDP, contenant les exemples est en ligne depuis Juin 2003, et la possibilité de charger les exécutables associés est arrivée quelques mois après. La page web de la bibliothèque "CImg" a été mise en ligne en décembre 2003. La mise à disposition n'est donc pas spécialement nouvelle. Cela explique aussi pourquoi la licence choisie n'est pas la CeCILL.
À l'origine, seuls les exécutables avaient été mis en ligne sur la page de démo (archive "TD-CVPR2003.zip"), et leur utilisation était effectivement limitée à des fins personnelles uniquement (d'où le "only non-profit organizations can use it").
Par la suite, nous avons décidé de mettre en ligne une bibliothèque de traitement d'images "CImg", puis l'algorithme dans le package de cette bibliothèque, comme exemple d'utilisation. Cette bibliothèque étant sous licence GPL, le code contenu dedans est effectivement libre. Lors de la mise à jour de la page web de démo, j'ai été un peu rapide et j'ai laissé le "only non-profit organizations can use it" qui est contraire à la licence GPL.
Toutes les sources contenues dans le package CImg sont bien GPL, y compris l'algorithme de restauration d'images.
D'ailleurs je conseille fortement aux gens qui veulent tester l'algorithme d'utiliser les sources qui se trouvent dans la bibliothèque CImg, plutôt que l'exécutable proposé sur la page de démo, qui est à mon avis plus lent. Un lien pour charger tous les exécutables de la bibliothèque pour Windows peut se trouver ici : CImg_win32_exe.zip
L'exécutable de l'algorithme se trouve dans le fichier "examples/pde_TschumperleDeriche2D.exe"

- À propos de la bibliothèque CImg :

Il y a eu, je pense, confusion entre la bibliothèque de traitement d'images CImg, et l'algorithme de restauration-inpainting proprement dit, présenté dans la page de démo. Ce dernier a été programmé en utilisant la bibliothèque, mais ne fait pas partie de son code, c'est juste un exemple d'utilisation. J'ai vu certaines critiques sur le code. Le source de l'algorithme de restauration est dans le fichier "examples/pde_TschumperleDeriche2D.cpp" et je ne pense pas que ce soit particulièrement fouillis. Critiquer le fichier d'entête "CImg.h" est une chose, mais il ne faut pas tout confondre.
Et pour les réticents, je ne crois pas qu'il existe de bibliothèque de traitement d'images plus simple à utiliser que CImg (classes génériques, pas de dépendances compliquées, code généré très court, bibliothèque multi-plateforme, etc...).
Peut-être est-ce l'occasion de l'essayer et de changer d'avis à son sujet. Regardez le fichier d'entête si vous voulez, ce n'est pas si compliqué à comprendre (regardez aussi "math.h" ou n'importe quel autre fichier d'entête "standard" en passant, vous me direz si c'est spécialement joli :) ). Mais regardez surtout les exemples et ce que ça permet de faire en quelques lignes... (un peu de pub ne fait jamais de mal.)

- À propos d'éventuels plug-ins :

Je serais très heureux d'aider toute personne intéressée pour faire un plug-in Gimp de cette méthode. Je ne suis moi-même pas spécialiste de la chose et j'ai peu de temps en ce moment, mais n'hésitez pas à me contacter si vous avez des problèmes ou des questions relatifs à l'algorithme. J'ai eu beaucoup de retour depuis l'annonce sur linuxfr, et apparemment ça pourrait intéresser pas mal de gens, donc forcément ça motive.

Voila, j'espère avoir éclairci quelques points. N'hésitez pas à tester et me contacter par mail pour de plus amples informations.
Et encore merci pour votre annonce sur linuxfr.

David Tschumperlé.

Aller plus loin

  • # Merci

    Posté par  . Évalué à 10.

    Et encore merci pour votre annonce sur linuxfr.
    David Tschumperlé.


    Merci à vous David et à l'INRIA pour nous fournir cette bibliothèque de grande qualité ainsi que de nombreux logiciels libres (d'ailleurs, s'il pouvaient être TOUS libres ce serait le top).

    Bravo pour votre travail et pour ces compléments.
    • [^] # Re: Merci

      Posté par  . Évalué à -8.

      ainsi que de nombreux logiciels libres (d'ailleurs, s'il pouvaient être TOUS libres ce serait le top).

      Et si en plus ils pouvaient se standardiser sur des licences établies internationalement comme la GPL ou la BSD, au lieu de réinventer leur petit truc exotique dans leur coin, ce serait franchement génial ;)
      • [^] # Re: Merci

        Posté par  . Évalué à -4.

        Heu, je n'ai pas l'habitude de me plaindre sur les histoires de vote et d'XPs, mais là j'aimerais savoir pourquoi le précédent a été sauvagement descendu... Juste par curiosité, quoi.
        • [^] # Re: Merci

          Posté par  . Évalué à 2.

          Par petit truc exotique dans leur coin tu entends la license CeCILL ?
          • [^] # Re: Merci

            Posté par  . Évalué à 5.

            Oui, en effet. Le truc semi-compatible avec la GPL (puisque de toute façon on ne peut pas prendre du code GPL et le mettre sous une autre licence), exemple typique du syndrôme Not Invented Here, qui s'il se réplique dans d'autres pays va arracher les cheveux de tous les projets logiciels libres internationaux. Tout ça au nom d'une "mise en conformité avec le droit national" alors même que personne n'a réussi à démontrer de façon convaincante la non-applicabilité de la GPL en droit français.

            Pourquoi pas, après tout, un TCP/IP français pour le mettre en conformité avec le droit national des télécoms ? Et autres absurdités (on a déjà le clavier Azerty :-)).
            • [^] # Re: Merci

              Posté par  . Évalué à -1.

              >(on a déjà le clavier Azerty :-)).

              a ce sujet, je me demande quelle gouvernement imposeras un clavier qwerty, un clavier Brésilien ABNT par exemple avec les accents enfin facile, et les caractères ]}[{ enfin accessible. (ABNT=association bresilienne des normes techniques, il ont deja changé 3 fois de norme pour leur clavier)

              il suffit d'adopter cela une fois pour toutes, avec une excuses bidon genre, ouais c'est l'europe nous sommes obligés sinon la france payeras des grosse amendes.

              et hop ce ne seras plus un enfer pour les touristes dans les cyber café français, ni pour faire du latex
            • [^] # Re: Merci

              Posté par  . Évalué à 2.

              "personne n'a réussi à démontrer de façon convaincante la non-applicabilité de la GPL en droit français."

              loi Toubon tu connais ?

              Je vois vraiment pas ce qui provoque ce besoin de troller envers une licence qui est libre, 100% compatible avec la GPL (la FSF va participer au groupe de travail pour la prochaine version), en phase avec le droit français. Exemple typique du syndrome du Raleur Patented ?
              • [^] # Re: Merci

                Posté par  . Évalué à 3.

                Je vois vraiment pas ce qui provoque ce besoin de troller envers une licence qui est libre, 100% compatible avec la GPL

                Tu as déjà lu la GPL ? Tu sais qu'on n'a pas le droit de changer la licence d'un logiciel sous GPL, même pour une autre licence "100% compatible" ? Tu comprends les implications en terme de fragmentation du libre, si chaque pays se met à bidouiller sa petite licence "100% compatible avec la GPL" dans son coin ?
                Comment fait-on pour échanger du code avec des croates, des australiens et des indiens, s'ils utilisent des licences "locales" non interchangeables avec la tienne ? On leur demande une autorisation écrite à chaque fois ? Mais s'il faut demander une autorisation à chaque fois, à quoi peuvent bien servir les licences du libre... ??

                Pour un exemple d'embrouillamini de licences compatibles entre elles, avec volonté de passer de l'une à l'autre, tu peux te renseigner sur la triple licence de Mozilla, et sur le programme de "relicensing" qui les a obligés à recontacter tous les contributeurs passés du soft pour arriver à passer sous la (triple) licence actuelle. Il y a une FAQ sur le sujet, c'est assez amusant de voir à quel point les problèmes de licences peuvent entraîner des mécanismes lourds et fastidieux :
                http://www.mozilla.org/MPL/relicensing-faq.html(...)

                Tu n'es toujours pas convaincu des bienfaits de la standardisation sur une licence logicielle copyleft universelle (la GPL) ?

                la FSF va participer au groupe de travail pour la prochaine version

                Qu'est-ce que cela change ? La FSF ne peut pas revenir sur les clauses de la GPLv2 et décider que dorénavant l'interchangeabilité peut avoir lieu dans les deux sens.

                De toute façon la FSF aussi fait des conneries (comme celle de ne jamais avoir lancé de programme de traductions officielles, contrairement à Creative Commons), et mon point de vue ne dépend pas de celui de la FSF. Juste du bon sens.
                • [^] # Re: Merci

                  Posté par  . Évalué à 3.

                  Qu'est-ce que cela change ? La FSF ne peut pas revenir sur les clauses de la GPLv2 et décider que dorénavant l'interchangeabilité peut avoir lieu dans les deux sens.

                  Extrait de la GPL version 2 :
                  This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

                  Ce qui signifie que si la FSF ne peut en effet revenir sur le texte de la GPL v2, une action sur une version suivante de la GPL "impacte" les logiciels diffusés sous GPL v2, pour peu que cette clause y figure. Donc si la GPL v3 (ou autre) précise un truc du genre :
                  [...] any later version ; or under the terms of the CeCILL license.
                  bein ça change tout. Et ça, la FSF peut très bien décider de le faire.

                  A mon (très) humble avis, c'est une chose excellente que (les) trois acteurs majeurs de la recherche publique française se soient penchés sur la question d'une license "de type GPL" dont des juristes se sont assurés de la compatibilité avec le droit français.

                  Tout d'abord parce que cela démontre leur intérêt pour les logiciels libres (mine de rien, cette license représente un sacré investissement) mais aussi parce que je crois que c'était nécessaire : il n'existe pas de traduction française validée (j'entends, par la FSF) de la GPL, et elle n'est pas recevable en l'état et dans sa totalité par un tribunal français (je n'y connais pas grand chose, mais j'ai cru comprendre que la suppression de toutes les garanties n'est pas légale en France, à titre d'exemple).
        • [^] # Re: Merci

          Posté par  . Évalué à 1.

          D'autant plus que ça devait être du 2nd degré... 'nfin :-/
    • [^] # Re: Merci

      Posté par  . Évalué à 10.

      >d'ailleurs, s'il pouvaient être TOUS libres ce serait le top

      Oui d'ailleurs l'INRIA c'est un organisme de recherche publique. Bien qu'ayant des partenariats avec le privé (surtout qu'en ce moment les chercheurs manquent cruellement de thune il paraît) le fruit des recherches devrait être libre. Ou au moins dispo pour les citoyens français, si ça pose un problème de concurrence étrangère. Après tout c'est nos thunes qui financent (en partie) ces travaux de recherche.

      Par curiosité, quelle proportion des travaux de l'INRIA sont publiés en GPL (ou approchant)? Et au bout de combien de temps? Si quelqu'un (de l'INRIA pourquoi pas :) a ce genre d'infos ça m'intéresse.
      • [^] # Re: Merci

        Posté par  (site web personnel) . Évalué à 10.

        La liste des logicels diffusés est ici :
        http://www.inria.fr/valorisation/logiciels/alpha.fr.html(...)
        Par contre il n'y a pas les licenses dans la liste, donc il faut suivre les liens, pas tres pratique.

        Niveau budget, en 2003 d'apres le rapport annuel
        ( http://www.inria.fr/inria/rapportannuel/ran2003.pdf(...) ) :

        "En 2003 le budget primitif de l'institut est passé de 113.5M€ HT a 119.4 M€ HT, dont 90.9 M€ HT de dotation de l'état. Apres une croissance entre les années 2000 et 2002 de l'ordre de 10%, le budget a augmenté de 5% en 2003. conformément a l'objectif fixé par le contrat quadriennal, la part des ressources propres de l'institut (contrats de recherche et produits de valorisation, comme les licenses sur les logiciels) est restée stable dans le budget de l'INRIA : ces ressources ont représenté en 2003, 24% de la dotation de l'état. Pour 2004 la dotation de l'état devrait atteindre 96.1 M€ HT, soit une augmentation comparable à celle de 2003"

        L'inria n'est pas le plus mal loti niveau budget, loin de la.
        • [^] # Re: Merci

          Posté par  . Évalué à 10.

          A propos des licenses, je fais une thèse dans une équipe INRIA. Voici quelques observations que j'ai pu faire :

          Les chercheurs autour de moi ne faisaient pas très attention aux licenses. Ça change pas mal ces dernières années, mais il faut bien comprendre que c'est quelque chose de récent. Je parle bien sûr des 'petits' codes. 'petits' n'est pas au sens de 'peu de ligne de code', mais 'développé pendant peu de temps' (une thèse, une tâche, ...)

          Généralement, les chercheurs sont très contents si des personnes désirent utiliser leur code : ça fait tout plein de retour d'expérience, ce qui est souvent très profitable.

          Par contre, il faut aussi comprendre que le travail de diffusion (packaging, documentation complète, publicité, ...) n'est pas très valorisable auprès de nos instances (sauf si le projet/code a déjà acquis une certaine notoriété). C'est pourquoi il faut généralement directement s'adresser aux équipes/développeurs pour avoir une doc un peu plus récente/à jour, ... Et tous les chercheurs ne sont pas prêts à s'investir sur leur temps libre pour faire ce travail de diffusion s'ils n'ont pas la certitude que ça intéressera un certain nombre de personnes. Énormément de code développé est abandonné au bout de quelque temps : des concepts sont validés et subsistent (dans d'autres projets/codes), mais le code de base est souvent archivé et laissé tel quel.


          Autre remarque : l'INRIA est structurée en équipes (approximativement 5 à 20 personnes en moyenne) relativement indépendantes. Cela explique les nombreuses disparités dans les politiques de diffusion de code. L'INRIA (centrale) demande de faire remonter les logiciels diffusés (ceux de la page citée plus haut), mais toutes les équipes ne le font pas nécessairement : elles estiment parfois que leur code n'est pas prêt pour une diffusion (pas assez de doc, trop compliquer à compiler/installer sans aide, ...). Les choix de licences, supports, ... sont entièrement fixés par les équipes, pas par un 'bureau central'.

          Pour le budget, ne pas perdre de vue que l'INRIA crée actuellement trois pôles supplémentaires (Lille,Saclay, Bordeaux) en plus des cinq autres déjà existants. Cela nécessite des moyens importants (nouveaux locaux et personnel (chercheur et administratif))
          • [^] # Re: Merci

            Posté par  . Évalué à 3.

            Je ne pense pas que pour mettre un logiciel à disposition il faille nécessairement le packager, le documenter et en faire la pub. À partir du moment ou il y a les sources, il y aura toujours quelqu'un de suffisament motivé pour le compiler, l'essayer et éventuellement l'améliorer. Dans ce cas ce n'est pas une diffusion grand public mais plutôt une mise à dispo destinée aux geeks tordus ou ayant vraiment besoin du soft en question. Voilà qui résoud le problème de coût et de temps.

            Concernant les licences, laisser le choix aux équipes c'est bien, mais les licences libres devraient être promues. Si j'ai bien lu les chiffres plus haut, le budget 2003 de 119.4 M€ HT provient pour 90.9 M€ HT de dotation de l'état. Je suppose que le reste vient de partenariats avec le privé. Donc on a quand même plus de 76% du financement qui est public. D'ou mon souhait que les projets soient publiés sous licence libre.
            • [^] # Re: Merci

              Posté par  . Évalué à 1.

              Heu... un peu de doc quand même :)

              Je pense qu'il est pratique d'avoir un minimum de doc afin de savoir par où commencer :) Si tu dois modifier un soft (même bien écris) tu gagnes un temps fou avec une petite doc qui te décris rapidement comment ça marche, à quoi servent les différentes bibliothèques...

              Surtout si le code est commentée de manière assez légère (je ne parle pas des logiciels présentés dans cet article, je n'ai pas regardé les sources).

              ouala... c'etait mon humbe avis (vous savez, celui qui n'engage que moi :)
              • [^] # Re: Merci

                Posté par  . Évalué à 2.

                Oui bien sûr, un peu de doc ne nuit pas. Mais il m'est arrivé de travailler sur des projets avec zéro doc, zéro commentaires et écrits par des gorets. C'est pénible mais ça se fait.

                Évidemment je préfère un truc packagé, documenté, bien écrit et commenté, avec une FAQ, une ML, un forum... :)
      • [^] # Re: Merci

        Posté par  (site web personnel) . Évalué à 1.

        Euh, bien que je pense aussi que le fruit des recherches devrait être libre, l'argumentaire ne me semble pas bon : tu finances tout un tas de trucs avec tes impôts, ce n'est pas pour ça que tu vas avoir des voyages gratuits à la SNCF, de l'électricité gratuite, etc, etc. Ce n'est pas non plus parce que tu es client d'une entreprise ou actionnaire que tu vas avoir accès à tous les petits secrets de celle-ci.
  • # Génial !

    Posté par  . Évalué à 4.

    Merci, Mr Tschumperlé, d'avoir levé si rapidement les quelques ambiguités concernant la license.
    Merci de mettre vos travaux à la disposition de la communauté ( humaine ), gageons qu'elle saura vous en remercier.
  • # Merci David !

    Posté par  . Évalué à 1.

    Merci David !

    Merci pour les exemples et le tutoriel. Ça donne vraiment envie de jouer avec la lib...

    Y-a-til un moyen d'obtenir du fullscreen sous X11 ?
  • # Retour

    Posté par  (site web personnel) . Évalué à 4.

    ça fait toujours plaisir d'avoir un retour lors de la publication de dépêche.
    • [^] # Re: Retour

      Posté par  . Évalué à 2.

      C'est pas dans la presse (écrite et audiovisuelle) qu'on voit ça d'habitude ;)
  • # Heu ... qu'est ce que j'ai rate ?

    Posté par  (site web personnel) . Évalué à 1.

    [oktail@kolvir CImg]$ make linux

    ** Starting the compilation of the entire CImg package for Linux. Please wait...
    make "LDFLAGS=-lm -lpthread -Wl,-rpath /usr/X11R6/lib" all
    make[1]: Entering directory `/home/oktail/CImg'
    > Compiling 'CImg_test'
    In file included from CImg_test.cpp:19:
    CImg.h: In member function `CImg& CImg::draw_line(int, int, int, int, int, int, const T*)':
    CImg.h:3567: error: `py' undeclared (first use this function)
    CImg.h:3567: error: (Each undeclared identifier is reported only once for each function it appears in.)
    CImg.h:3567: error: `pz' undeclared (first use this function)
    CImg.h:3568: error: `y' undeclared (first use this function)
    CImg.h:3568: error: `z' undeclared (first use this function)
    CImg.h: In member function `CImg CImg::get_correl(const CImg&, uint, bool) const':
    CImg.h:4105: error: there are no arguments to `dirichltet_pix3d' that depend on a template parameter, so a declaration of `dirichltet_pix3d' must be available
    CImg.h:4105: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
    CImg.h: In member function `CImg CImg::get_correl5x5(const double (*)[3], bool) const':
    CImg.h:4255: error: `I' undeclared (first use this function)
    CImg.h:4255: error: there are no arguments to `cimg_squaresum' that depend on a template parameter, so a declaration of `cimg_squaresum' must be available
    CImg.h: In member function `CImg CImg::get_correl3x3x3(const double (*)[3][3], bool) const':
    CImg.h:4283: error: `I' undeclared (first use this function)
    CImg.h:4283: error: there are no arguments to `cimg_squaresum' that depend on a template parameter, so a declaration of `cimg_squaresum' must be available
    CImg.h: In constructor `CImgROI::CImgROI(uint, uint, uint, uint, T*)':
    CImg.h:5911: error: `width' undeclared (first use this function)
    CImg.h:5911: error: `height' undeclared (first use this function)
    CImg.h:5911: error: `depth' undeclared (first use this function)
    CImg.h:5911: error: `dim' undeclared (first use this function)
    CImg.h:5911: error: `data' undeclared (first use this function)
    CImg.h: In copy constructor `CImgROI::CImgROI(const CImgROI&)':
    CImg.h:5914: error: `width' undeclared (first use this function)
    CImg.h:5914: error: `height' undeclared (first use this function)
    CImg.h:5914: error: `depth' undeclared (first use this function)
    CImg.h:5914: error: `dim' undeclared (first use this function)
    CImg.h:5914: error: `data' undeclared (first use this function)
    CImg.h: In destructor `CImgROI::~CImgROI()':
    CImg.h:5916: error: `width' undeclared (first use this function)
    CImg.h:5916: error: `height' undeclared (first use this function)
    CImg.h:5916: error: `depth' undeclared (first use this function)
    CImg.h:5916: error: `dim' undeclared (first use this function)
    CImg.h:5916: error: `data' undeclared (first use this function)
    make[1]: *** [CImg_test] Erreur 1
    make[1]: Leaving directory `/home/oktail/CImg'
    make: *** [linux] Erreur 2



    J'ai cru lire dans la doc que c'etait portable ...
    J'ai rate quoi ?
    • [^] # Re: Heu ... qu'est ce que j'ai rate ?

      Posté par  (site web personnel) . Évalué à 4.

      essai make tout court, chezmoicamarche.org
    • [^] # Re: Heu ... qu'est ce que j'ai rate ?

      Posté par  . Évalué à 1.

      Pour ma part, la compilation passe mais j'ai des seg fault dans certains exemples (et j'ai ImageMagick). Mais j'ai simplement fait un make dans le répertoire example.

      Je n'ai pas encore eu le temps de jouer avec pour voir les possibilités.
    • [^] # Re: Heu ... qu'est ce que j'ai rate ?

      Posté par  . Évalué à 2.

      Quelle version de gcc ? Par curiosité, essaye par exemple de faire disparaitre la première volée d'erreurs comme ça :
      --- CImg.h.orig	2004-07-23 18:43:53.468503269 +0200
      +++ CImg.h	2004-07-23 18:45:00.137972278 +0200
      @@ -3564,8 +3564,12 @@
           if (z0<0) { x0-=z0*(x1-x0)/(z1-z0); y0-=z0*(y1-y0)/(z1-z0); z0=0; }
           if (z1>=(int)depth) { x1+=(z1-(int)depth)*(x0-x1)/(z1-z0); y1+=(z1-(int)depth)*(y0-y1)/(z1-z0); z1=(int)depth-1;}
           const uint dmax = (uint)cimg::max(std::abs(x1-x0),std::abs(y1-y0),z1-z0);
      -    const float px = dmax?(x1-x0)/(float)dmax:0;  py = dmax?(y1-y0)/(float)dmax:0; pz = dmax?(z1-z0)/(float)dmax:0;
      -    float x = (float)x0; y = (float)y0; z = (float)z0;
      +    const float px = dmax?(x1-x0)/(float)dmax:0; 
      +    const float py = dmax?(y1-y0)/(float)dmax:0;
      +    const float pz = dmax?(z1-z0)/(float)dmax:0;
      +    float x = (float)x0;
      +    float y = (float)y0; 
      +    float z = (float)z0;
           for (uint t=0; t<=dmax; t++) { 
             const uint ix=(uint)x, iy=(uint)y, iz=(uint)z; 
             cimg_mapV(*this,k) (*this)(ix,iy,iz,k) = *(color++);
      
      Si ça marche, bah à toi de jouer, les autres sont similaires.
    • [^] # Re: Heu ... qu'est ce que j'ai rate ?

      Posté par  (site web personnel) . Évalué à 2.

      Il reste quelques bugs que je suis en train de corriger,
      mais normalement ton bug ne devrais pas se produire, car la fonction incriminée n'était pas appellée dans les programmes de test.
      Peut-être que ton compilo essaie de compiler les fonctions inline qui ne sont pas utilisées.
      Je suis en train de travailler sur la version 1.0.6, qui est sur CVS.
      Tu peux essayer de prendre la derniere version CVS pour voir si le probleme se corrige.

      Et les bugs, c'est bien de les signaler directement sur le forum du projet sourceforge (lien a partir de la page principale de CImg),
      ca permet d'avancer encore plus vite.

      Merci d'avance.
      David.
  • # bibliothèque de traitement d'images plus simple ?

    Posté par  . Évalué à 2.

    J'ai utilisé cette année la bibliothéque itk (http://www.itk.org(...)), qui me semble pas mal, mais je n'ai pas vraiment de recul et surtout je n'ai pas d'éléments de comparaison avec d'autres bibliothèques.

    Est-ce que David ou quelqu'un d'autre pourrait nous en fournir ?

    merci
    • [^] # Re: bibliothèque de traitement d'images plus simple ?

      Posté par  . Évalué à 4.

      Je commence à avoir pas mal de recul par rapport à ITK : l'utilisation du code existant est assez simple, après un temps d'adaptation aux techniques employées. Les exemples sont nombreux, le code est très bien documenté, beaucoup de techniques de traitement d'image sont déjà implémentées.
      Par contre, rajouter un filtre est plus compliqué : il faut se faire la main sur des exemples simples pour comprendre le framework de la bibliothèque, et bien maitriser le C++.

      Après avoir survolé CImg (la doc générée et le code), je suis un peu sceptique : un fichier de 6000 lignes, les algorithmes en fonction membres de la class CImg, ça me semble quelque chose de compliqué à maintenir et à étendre. Malgré ces reproches, CImg semble plus simple pour une première utilisation.

      Pour reprendre les quatre points donnés par David en faveur de CImg (généricité, dépendances, multi-plateformes et taille du code généré), je donnerais un avantage à ITK pour la généricité, une égalité pour les dépendances et le multi-plateformes. Je ne comparerais pas la taille du code généré, le code d'ITK comprenant plus de 175000 lignes de code, et 44000 lignes d'exemples.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.