Dé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
# Tu as de la chance
Posté par Calvin0c7 . Évalué à 6.
Par contre il y a un point dans ton journal qui m'a beaucoup intrigué. Tu as reçu des mails d'insultes ? Pourquoi ? Pour concurrence déloyale ? Pour avoir donné de ton temps, de ta compétence, de ton savoir, aux autres ? Par jalousie ?
C'est quand même un mystère. Qu'est ce qu'il faut faire dans ce monde pour que personne n'y trouve rien à redire ?
[^] # Re: Tu as de la chance
Posté par David Tschumperlé (site web personnel) . Évalué à 10.
En ce qui concerne les mails d'insultes, je n'en ai pas recu des tonnes heureusement, mais ça provenait principalement de gens qui n'arrivaient pas à faire tourner le truc comme il voulait alors ça devait les enerver je suppose. Comme je répond pas, j'ai pas trop l'explication en fait ("bizarrement", je crois me rappeller que c'était principalement des Windowsiens, c'est çà de faire des libs multi-plateformes.. :) )
David.
# Un peu HS...
Posté par Moonz . Évalué à 1.
# Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par Anonyme . Évalué à 2.
Et juste avant de voir ce journal, je pensais justement a tout ca, et m'est venu une idée lumineuse : afficher ces pano dans le bureau en cube de compiz !
Bon vu que nos écran ne sont pas carrés il faudra se passer de la face supérieure et inférieure du cube, mais en limitant les angles de vue verticaux, on peut avoir un affichage impec si on active la vue interne du cube. Par contre panorama de haute qualité impératif en entrée : il faudra compter quatre fois la largeur de votre écran pour la largeur du pano sphérique, c'est le minimum pour un affichage optimal. C'est jouable, on trouve pas mal d'images sphériques en 10000x5000 [2]
L'idéal serait de créer un GUI autour de tout ca qui transforme l'image (avec une belle barre de progression, car c'est assez lourd) et change les fond d'écrans de chaque bureau virtuel, le top étant de gérer un cache et une gestion de collection d'images.
Bon reste a libérer le code existant (devrait pas être dur) créer un hébergement pour le projet, deux trois videos kikoo lol 2.0 beta pour rameuter les testeurs.
Qu'en pensez vous ?
(pour ceux qui ne connaissent pas les panos, avoir un cube avec les images comme il faut permet de faire disparaitre les arrêtes du cube, tout en corrigeant les aberrations visuelles : quelque soit l'angle - vertical et horizontal - , l'image parait naturelle, comme une photo a part entière)
[1] http://www.panotools.info/mediawiki/index.php?title=Panoglvi(...)
[2] http://www.flickr.com/photos/gadl/
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par ribwund . Évalué à 3.
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par Anonyme . Évalué à 5.
donc avec l'image http://www.flickr.com/photo_zoom.gne?id=1226553893&size=(...) , voilà ce que l'on obtient (screenshots de différents angles de vue) :
http://www.valisystem.free.fr/panos/screenshot4.png
http://www.valisystem.free.fr/panos/screenshot5.png
http://www.valisystem.free.fr/panos/screenshot6.png
Avec une motivation je vais faire un test avec mon bureau compiz.
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par Anonyme . Évalué à 3.
Bon, je vais remettre tout ca a plus tard, alors ...
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par jeffcom . Évalué à 2.
<malife>
perso, pour les corriger, j'utillisait jadis une méthode, certes très gorette mais que avait le mérite de corriger réellement les aberrations... existe-t-il un équivalent "en code" ?
ma méthode "supergorette" :
prendre un logiciel 3D (à l'époque j'avais que 3DMax) créer un cylindre, y plaquer l'image en "pano" pour qu'elle jointe correctement, placer une caméra au milieu, et la faire filmer/prendre des images : le fait de plaquer l'image sur un cylindre permet d'avoir notamment des lignes de carrelage vraiment "droites" visuellement, aucun objet déformé bref de tout corriger (le principe est simple : représentez-vous la prise de vue...) en gros ça reproduisait, à l'envers la prise de vue... étant donné que c'était pour faire de la visite virtuelle de lieux avec une image de 200px de haut, pas grave que la qualité soit pourrie...
je pense personnellement qu'utiliser un polyèdre se rapprochant le plus possible du cylindre et de le "regarder" de l'intérieur et pas de l'extérieur donnerait un bien meilleur effet... à tester si se n'est pas déjà fait
</malife>
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par djibb (site web personnel) . Évalué à 3.
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par Anonyme . Évalué à 2.
http://www.panotools.info/mediawiki/index.php?title=Cubic_Pr(...)
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par jeffcom . Évalué à 2.
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par jeffcom . Évalué à 2.
PS : je vois pas en quoi c'est stupide...
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par Anonyme . Évalué à 2.
Je ne peux pas faire grand chose pour te convaincre, mais imagine une sphère, un cube, un point de vue unique, et on se rend compte que l'on peut faire un rendu de la sphère sur le cube de telle manière que le cube apparaîtra identique a la sphère (depuis un point de vue donné) sans aucune perte (enfin a une interpolation près).
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par jeffcom . Évalué à 2.
okok :)
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par beagf (site web personnel) . Évalué à 1.
Je dispose d'un objectif fisheye : le RAYNOX DCR-CF185PRO qui me permet de faire de jolies photos, mais je suis à la recherche d'un programme du genre des panorama tools mais qui me permmette de passer de mes images fisheye à des images sphériques.
En gros j'aimerais pouvoir faire comme pou les panorama : Mettre mon appareil sur pied avec l'objectif fisheye, faire des photos en faisant une rotation de l'appareil et assembler le tout. Mais au final au lieu d'avoir juste une bande que je peux coller sur un cylindre, avoir nue image que je puisse coller sur une sphère ou un cube .Si je comprend bien ton logiciel permet de passer de la sphere au cube, ça je vois comment le faire, mon problème c'est de passer des fisheye à la sphere.
Alors, aurais-je mal vu et panotools permet de le faire, ou bien existe-t-il un autre soft pour ça ou rien du tout ?
[^] # Re: Tiens, je pensais a CImg quelques minutes avant de voir ce journal !
Posté par Anonyme . Évalué à 3.
http://www.valisystem.free.fr/panos/picture5.png
Je pense que tu vas bien te casser la tête pour les réglages (et encore, pas sûr :) ), mais techniquement c'est possible de faire ce que tu veux.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.