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
- Une bibliothèque graphique de l'INRIA Sophia-Antipolis sous GPL (45 clics)
- La page de David Tschumperlé (12 clics)
# Merci
Posté par djano . Évalué à 10.
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 Antoine . Évalué à -8.
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 Antoine . Évalué à -4.
[^] # Re: Merci
Posté par Erwann . Évalué à 2.
[^] # Re: Merci
Posté par Antoine . Évalué à 5.
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 Anonyme . Évalué à -1.
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 Jean Roc Morreale . Évalué à 2.
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 Antoine . Évalué à 3.
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 Pierre LALET . Évalué à 3.
Extrait de la GPL version 2 :
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 :
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 Maxx . Évalué à 1.
[^] # Re: Merci
Posté par Yhar Gla . Évalué à 10.
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 Vincent P (site web personnel) . Évalué à 10.
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 Vincent Danjean . Évalué à 10.
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 Yhar Gla . Évalué à 3.
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 fouinto . Évalué à 1.
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 Yhar Gla . Évalué à 2.
Évidemment je préfère un truc packagé, documenté, bien écrit et commenté, avec une FAQ, une ML, un forum... :)
[^] # Re: Merci
Posté par Vincent Bernat (site web personnel) . Évalué à 1.
# Génial !
Posté par mayal . Évalué à 4.
Merci de mettre vos travaux à la disposition de la communauté ( humaine ), gageons qu'elle saura vous en remercier.
# Merci David !
Posté par Suzy . Évalué à 1.
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 ?
[^] # Re: Merci David !
Posté par David Tschumperlé (site web personnel) . Évalué à 1.
David.
# Retour
Posté par Juke (site web personnel) . Évalué à 4.
[^] # Re: Retour
Posté par oliv . Évalué à 2.
# Heu ... qu'est ce que j'ai rate ?
Posté par vincent LECOQ (site web personnel) . Évalué à 1.
** 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 TImaniac (site web personnel) . Évalué à 4.
[^] # Re: Heu ... qu'est ce que j'ai rate ?
Posté par vincent LECOQ (site web personnel) . Évalué à 1.
meme resultat
[^] # Re: Heu ... qu'est ce que j'ai rate ?
Posté par harrythesecond . Évalué à 1.
[^] # Re: Heu ... qu'est ce que j'ai rate ?
Posté par vincent LECOQ (site web personnel) . Évalué à 1.
rien a faire, meme resultat
[^] # Re: Heu ... qu'est ce que j'ai rate ?
Posté par Talou (site web personnel) . Évalué à 1.
c'est juste une idée comme ça.
[^] # Re: Heu ... qu'est ce que j'ai rate ?
Posté par vincent LECOQ (site web personnel) . Évalué à -5.
[^] # Re: Heu ... qu'est ce que j'ai rate ?
Posté par fouinto . Évalué à 2.
Je pense qu'il y a moyen de répondre plus gentillement à quelqu'un qui semble vouloir vous aider...
J'admets que parfois on a l'impression d'être pris pour un idiot avec les questions posés par ceux qui souhaitent aider... mais statistiquement... on l'est tous parfois :)
[^] # Re: Heu ... qu'est ce que j'ai rate ?
Posté par vincent LECOQ (site web personnel) . Évalué à -7.
[^] # Re: Heu ... qu'est ce que j'ai rate ?
Posté par Frédéric COIFFIER . Évalué à 1.
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 tgl . Évalué à 2.
[^] # Re: Heu ... qu'est ce que j'ai rate ?
Posté par David Tschumperlé (site web personnel) . Évalué à 2.
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 PegaseYa . Évalué à 2.
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 Roulious . Évalué à 4.
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.
[^] # Re: bibliothèque de traitement d'images plus simple ?
Posté par David Tschumperlé (site web personnel) . Évalué à 2.
Je pense néanmoins que c'est assez utile pour faire rapidement de petits prototypes fonctionnels, dans le milieu de la recherche ou de l'éducation.
David.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.