|
Nous sommes actuellement le Jeu 5 Déc 2019, 20:16
|
Voir les messages sans réponses | Voir les sujets actifs
mise à plat d'image cylindrique
Auteur |
Message |
la_saucisse
Administrateur
Inscrit le: Lun 26 Mai 2008, 16:38 Messages: 12819 Localisation: Isère - Jura
|
 mise à plat d'image cylindrique
sur mes images "whisky", j'ai souvent évoqué les problèmes de récupération de textures, le support étant cylindrique et donc source de déformations, ce qui rend l'assemblage difficile : viewtopic.php?p=185136#p185136il y a bien sûr la solution de décoller puis scanner les étiquettes, mais le résultat est parfois complètement pourri (on déchire tout, ça gondole...) je me suis penché sur le sujet et ai "pondu" (cooot ! ) un script PHP qui, à partir d'une image donnée, la remet à plat. le résultat n'est évidemment pas exploitable en l'état, il faudra encore passer par une correction des perspectives horizontales, et assembler plusieurs photos.mais l'assemblage devrait être facilité, chaque pixel de l'image obtenue ayant enfin (si je ne suis pas gourré dans mes calculs) la même largeur "réelle" que ses voisins, alors que sur la photo source, les pixels sur les bords gauche et droit étant proches des contours de la bouteille, ils "valent" parfois l'équivalent de 15 ou 20 pixels s'ils étaient pris de face. il me reste à faire un emballage un peu plus esthétique, même minime, et surtout un contrôle (de sécurité) des fichiers uploadés, et je pourrai le mettre sur mes pages persos, pour en faire ce que vous voulez 
_________________

|
Mer 11 Sep 2013, 13:53 |
|
 |
la_saucisse
Administrateur
Inscrit le: Lun 26 Mai 2008, 16:38 Messages: 12819 Localisation: Isère - Jura
|
 Re: mise à plat d'image cylindrique
quelques explications, si ça intéresse quelqu'un je suis donc parti sur l'idée du script suivant :  1 : j'ai une image qui correspond à la moitié visible d'un cylindre, donc un demi cercle, d'une largeur connue 2 : de cette largeur, je calcule celle de l'image "dépliée", merci Monsieur Pi 3 : je considère que chaque pixel est une "tranche" projetée depuis l'axe X vers le demi-cercle ayant une largeur fixe 4 : la projection de ces tranches me donne 2 cosinus (de -1 à gauche à +1 à droite) 5 : à partir de ces cosinus, je calcule l'angle alpha de l'arc correspondant à ma tranche. par exemple, pour une image de 20 pixels de large, chaque pixel vaut 0.1 sur l'axe des abcisses. le 2ème pixel ici illustré couvre donc l'arc de de cos(-0.9) à cos(-0.8) 6 : ayant mon arc, je calcule le pourcentage qu'il occupe sur les 180° du demi-cercle. par exemple, un arc de 45° vaut 25% de l'image. les pixels aux bords gauches et droit, très étirés, valent donc beaucoup plus que ceux du milieu ayant un étirement proche de zéro. 7 : je copie le pixel sur ma nouvelle image, en l'étirant en largeur si besoin est en respectant le pourcentage calculé. j'ai préalablement détaillé chaque étape des calculs sur Excel, ce qui donne ceci pour une image source de 32 pixels de large : ça donne une idée des calculs nécessaires pour une image de 2000 ou 3000 pixels de large  chaque ligne correspond à 1 pixel, numérotés de 0 à 31, les dernières colonnes indiquant son point de départ et la largeur à laquelle il doit être étiré pendant la copie. l'image générée plaquée sur un demi-cylindre ne présente plus de déformation du texte, hormis sur les bords : il faudra tout de même assembler des photos !
_________________

|
Mer 11 Sep 2013, 14:26 |
|
 |
Stakycake
Modérateur
Inscrit le: Mar 13 Sep 2005, 21:28 Messages: 4181 Localisation: la Terre... enfin je crois...
|
 Re: mise à plat d'image cylindrique
Ce que tu fais est méritoire, mais il y a encore beaucoup de taf sur l'image avant d'avoir quelque chose de correct à appliquer sur l'objet.
Maintenant, je ne suis pas un pro de photoshop ou autre, et c'est plus facile à faire que ça ne me le paraît être (je parle de la correction post script).
Je me demande s'il n'est pas préférable et plus facile de prendre des photos autour et de faire un montage.
L'appareil fixe, la bouteille sur un pivot.
_________________ L'Intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !
|
Mer 11 Sep 2013, 16:44 |
|
 |
la_saucisse
Administrateur
Inscrit le: Lun 26 Mai 2008, 16:38 Messages: 12819 Localisation: Isère - Jura
|
 Re: mise à plat d'image cylindrique
tu n'as pas tout lu ^^ j'ai bien précisé qu'il faut faire plusieurs photos et les assembler, car les contours sont trop étirés pour être utilisables. (je vais éditer le message et le mettre en gras ^^ ) mais l'assemblage de photos ainsi étirées n'est pas facile, car l'image est "plate" sur quelques pixels au centre de l'image puis, insidieusement, pixel par pixel, se contracte progressivement vers les extérieurs (en suivant la courbe à 180° du demi-cercle) ce script ne servira qu'à faciliter (je l'espère) l'assemblage, en supprimant la déformation cylindrique vers l'arrière. c'est pas faute d'avoir essayé, mais 3 ou 5 photos ne suffisent pas : si on veut ne garder que les "tranches propres" du milieu de chaque photo, il faut 8, 10...15 photos ! et dans tous les cas, bonjour l'assemblage !!  avec entre autre : - les différences de luminosité : c'est arrondi, donc l'ombrage varie en permanence, - les problèmes de centrage de l'objet : il faut que le pivot soit exactement au centre, sinon la bouteille avance/recule par rapport à l'APN, ce qui change la focale... et donc les perspectives, très légèrement mais suffisamment pour avoir des raccords foireux - les problèmes de réflexions : y'a souvent des dorures sur les étiquettes de bouteilles de whisky, donc selon la rotation, elles changent et donnent des zones difficilement exploitables. - ... et le problème de contraction cylindrique !!! ça sera déjà ça en moins. Je j'ai trouvé aucun soft d'assemblage panoramique qui sache assembler dans ce sens là ! Les panoramiques de paysages, y'en a à la pelle ! Les panoramiques d'objets (photo "VR"), y'a pas. Les solutions proposées pour le VR sont de faire 15 ou 20 photos autour de l'objet, et un script JS ou Flash les affiche selon le mouvement de souris, pour donner une impression de rotation : aucun soft n'assemble réellement les photos pour réellement la faire pivoter, comme c'est le cas pour les panoramiques 360° de paysages. Ce qui semble logique car comment prendre une photo continue autour d'un objet ??? On ne peut pas ! A part sur un cylindre... mais visiblement personne n'a pris le temps de développer un soft qui fasse ça. Enfin si, on peut, mais ça donne des résultats "abstratico-fantastico-artistique" qui ne collent pas avec la création de textures, car la qualité est assez faible
_________________

|
Mer 11 Sep 2013, 17:11 |
|
 |
Stakycake
Modérateur
Inscrit le: Mar 13 Sep 2005, 21:28 Messages: 4181 Localisation: la Terre... enfin je crois...
|
 Re: mise à plat d'image cylindrique
Et ben je ferai des bouteille sans étiquettes, na ! ^^
_________________ L'Intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !
|
Mer 11 Sep 2013, 18:54 |
|
 |
la_saucisse
Administrateur
Inscrit le: Lun 26 Mai 2008, 16:38 Messages: 12819 Localisation: Isère - Jura
|
 Re: mise à plat d'image cylindrique
oh t'as bien raison, c'est la partie la plus plaisante à faire... les étiquettes c'est chiant ! 
_________________

|
Mer 11 Sep 2013, 19:37 |
|
 |
GM1968
Modérateur
Inscrit le: Ven 7 Mar 2008, 11:23 Messages: 8130 Localisation: Forêt d'Orient
|
 Re: mise à plat d'image cylindrique
Du coup, tu as été contraint de faire de la trigo ! J'ai peut-être une autre solution... Avec Bryce... Si si...  Tu crées un cylindre, tu appliques ton étiquette en projection "objet front" Ambiance à fond. Tu positionnes la caméra au centre du cylindre et fait en rendu en 360°... et voilà... 
_________________
|
Mer 11 Sep 2013, 21:22 |
|
 |
la_saucisse
Administrateur
Inscrit le: Lun 26 Mai 2008, 16:38 Messages: 12819 Localisation: Isère - Jura
|
 Re: mise à plat d'image cylindrique
_________________

|
Mer 11 Sep 2013, 21:55 |
|
 |
GM1968
Modérateur
Inscrit le: Ven 7 Mar 2008, 11:23 Messages: 8130 Localisation: Forêt d'Orient
|
 Re: mise à plat d'image cylindrique
Normalement, ça devrait être bon en tout cas à l'horizontal... il y a peut-être un déformation verticale... Mon idée initial était l'export du cylindre mais les exports dans Bryce, c'est vraiment pas terrible... disons que ça ne marche pas du tout... La difficulté c'est de bien cadrer la photo initiale, non ? 
_________________
|
Jeu 12 Sep 2013, 07:49 |
|
 |
la_saucisse
Administrateur
Inscrit le: Lun 26 Mai 2008, 16:38 Messages: 12819 Localisation: Isère - Jura
|
 Re: mise à plat d'image cylindrique
oui j'y ai pensé, les panos 360° utilisent une projection spherical map au ratio 2:1. Celle de Bryce est tronquée en vertical, il manque le centre des zenith et nadir (c'est en gros du 360°x160°, et non 360°x180°) :  donc ce qu'on corrige en déformation horizontale sera peut-être converti en déformation verticale... bon, à tester.
_________________

|
Jeu 12 Sep 2013, 08:22 |
|
 |
la_saucisse
Administrateur
Inscrit le: Lun 26 Mai 2008, 16:38 Messages: 12819 Localisation: Isère - Jura
|
 Re: mise à plat d'image cylindrique
bon, c'était un script en ligne, écrit en PHP : fonctionnel mais bouffe trop de ressources processeur, je ne voulais pas le mettre en ligne sur mes pages persos, ça serait un coup à faire suspendre mon compte pour abus de ressources. du coup j'ai repris la structure du script (un traitement colonne par colonne de pixels de l'image) et suis en train de le porter sur AutoIt, afin d'en faire un exécutable, pour un usage local hors-ligne, avec la librairie FreeImage. l'interface est terminée, le script fonctionne, il faut que je gère encore quelques détails (l'écrasement ou non ds fichiers existants, ça peut être embêtant si c'est pas voulu) et que je fasse le fichier texte pour tout le blabla habituel. je pourrai sûrement mettre en ligne une version beta ce soir, avant la version finale d'ici quelques jours (packaging, setup d'install, toussi toussa). hop ! 
_________________

|
Jeu 12 Déc 2013, 14:36 |
|
 |
GM1968
Modérateur
Inscrit le: Ven 7 Mar 2008, 11:23 Messages: 8130 Localisation: Forêt d'Orient
|
 Re: mise à plat d'image cylindrique
 Super !
_________________
|
Jeu 12 Déc 2013, 22:16 |
|
 |
nergal83
Modérateur
Inscrit le: Mer 22 Aoû 2007, 16:45 Messages: 10034 Localisation: varoisvaroisvarois, na
|
 Re: mise à plat d'image cylindrique
en packaging cylindrique forcemment 
_________________
|
Ven 13 Déc 2013, 13:24 |
|
 |
la_saucisse
Administrateur
Inscrit le: Lun 26 Mai 2008, 16:38 Messages: 12819 Localisation: Isère - Jura
|
 Re: mise à plat d'image cylindrique
ça serait une idée 
_________________

|
Ven 13 Déc 2013, 19:09 |
|
 |
la_saucisse
Administrateur
Inscrit le: Lun 26 Mai 2008, 16:38 Messages: 12819 Localisation: Isère - Jura
|
 Re: mise à plat d'image cylindrique
téléchargement de la version 1.0.0 portable (pour Windows, comme d'hab) http://mithril94.free.fr/applis/c2c/cyl2cube_v1.0.0.zipmerci de vos retours pour ceux qui testeront il faudra aussi que je fasse un petit tuto pour accompagner, car il faut préalablement préparer les images à traiter. J'indique le minimum dans l'aide, quelques images d'illustration en plus ne seront pas du luxe.
_________________

|
Ven 13 Déc 2013, 19:46 |
|
 |
|
Qui est en ligne ? |
Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités |
|
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum
|
Powered by phpBB © phpBB Group | Translated by phpBB.fr © 2007, 2008 | Designed by Vjacheslav Trushkin
|