Réalisation d'une photo trompe l'oeil (panorama) - Technique - Photo numérique
Marsh Posté le 19-10-2006 à 13:51:01
Tu veux dire pour la prise de vue ou pour l'impression ? Ou les deux ?
Marsh Posté le 19-10-2006 à 19:24:21
je veux imprimer un panorama pour le mettre dans un coin de pièce et que cela crée un trompe l'oeil = que l'on ai l'impression d'avoir vraiment le paysage devant les yeux sans tourner la tête...
Marsh Posté le 20-10-2006 à 09:56:53
Il faut que tu détermines les perspectives depuis le point d'observation choisi dans la piece.
Puis que tu trouves comment faire pour prendre une photo qui obtient la même perspective.
Marsh Posté le 20-10-2006 à 17:02:26
Je pensais plutot retoucher une photo existante, mais je ne sais pas trop comment faire...
Marsh Posté le 20-10-2006 à 17:16:24
Voila comment je pense qu'il faut faire :
La flèche correspond au regard, le double trait au mur et le trait à 45° correspond a la vue réelle : il faut donc réaliser une projection de la photo sur le mur... Mais comment faire ca en photo ?
Marsh Posté le 20-10-2006 à 17:46:58
Après reflexion, il faudrait reduire le ratio hauteur-largeur par racine(2) car une distance d du réel aura sur le mur dun distance d/racine(2)... mais ca me parait trop simple...
Marsh Posté le 20-10-2006 à 18:22:41
le "réel" n'est pas un plan....
Marsh Posté le 20-10-2006 à 22:57:21
si mais sur le dessin, le réel est la dte à 45°... c'est une vue de dessus
Marsh Posté le 20-10-2006 à 23:03:39
En faite, il faut faire plutot une projection dans le sens de vision :
Ainsi il faut allonger l'image de racine(2)...
Qu'en pensez vous ?
Marsh Posté le 24-10-2006 à 16:04:13
Ton schéma est valable seulement si tu considères que tu regardes ton image depuis l'infini...
Sinon pour un point de vue proche c'est plutôt quelque chose comme ca :
Après pour la transformation, c'est des maths, là je peux plus t'aider, je suis allergique. Mais pour le calcul, c'est faisable soit manuellement avec un truc comme matlab, ou peut être que des logiciels de panorama gèrent ça :?
Marsh Posté le 24-10-2006 à 16:13:25
Moi ça m'interresse comme truc...
Je suis developpeur. Si tu me files les equations de transformations je peux tenter te faire un exe si tu veux
Marsh Posté le 24-10-2006 à 16:31:11
si c'est bien ça, ça dépend de la position de l'oeil... c'est déjà moins sympa...
Marsh Posté le 24-10-2006 à 16:37:41
ben dans le cas d'un point de vue à l'infini, l'algo est simple:
tu créé une nouvelle image de même hauteur et de largeur largeur * 2racine(2), et après tu parcours chaque ligne de ta nouvelle image et tu fais un truc du genre :
Si x < milieu alors
couleur[x] = couleur[milieu - x/rac(2)]
sinon
couleur[x] = couleur[milieu + x/rac(2)]
Le tout en arrondissant les valeurs comme il faut évidemment.
(bon je peux me tromper je fais ça à l'arrache, c'est la fin d'aprem et j'ai pas envie de prendre un papier pour gribouiller)
Dans le cas d'un point de vue proche, et ben tu rajoutes les cosinus et les sinus qui vont bien .
Marsh Posté le 24-10-2006 à 16:38:34
micgre2 a écrit : si c'est bien ça, ça dépend de la position de l'oeil... c'est déjà moins sympa... |
Ah bah de toute manière c'est déjà certain que ca ne fonctionnera que de loin ou en étant à un point précis.
Marsh Posté le 24-10-2006 à 17:32:11
lfs a écrit : ben dans le cas d'un point de vue à l'infini, l'algo est simple: |
Tu peux expliciter ton histoire de couleur ? j'ai pas très bien compris ...
Marsh Posté le 24-10-2006 à 17:43:16
micgre2 a écrit : http://img105.imageshack.us/img105 [...] tregp7.png |
C'est quoi L ?
Marsh Posté le 25-10-2006 à 10:33:54
micgre2 a écrit : Tu peux expliciter ton histoire de couleur ? j'ai pas très bien compris ... |
Ce que j'appelle couleur, c'est la valeur du pixel au point (x,y).
Marsh Posté le 25-10-2006 à 10:49:49
premier essai :
j'ai créé un maillage
qui devient :
A priori ça n'est pas concluant puisque le maillage est large au centre et sérré vers les extérieurs !
ça devrait être l'inverse non ?
Marsh Posté le 25-10-2006 à 10:58:56
xtremdev a écrit : premier essai : |
Ouaip t'as raison en fait c'est pas une division c'est une multiplication
lfs a écrit : ben dans le cas d'un point de vue à l'infini, l'algo est simple: |
Marsh Posté le 25-10-2006 à 11:02:03
pourtant, d'après ton schéma, lfs, une portion de l'image d'origine deviens plus petit....
Marsh Posté le 25-10-2006 à 11:07:19
ah oui mais mon algo c'est dans le cas du deuxième schéma de micgre2, où la projection se fait suivant des droites parallèles.
Pour mon schéma à moi c'est la formule de micgre2 qui fonctionne, et là rien ne dit que suivant les cas, ca ne va pas rétrécir l'image (d'ailleurs oui, si le point de vue est très près du mur, l'image sera rétrécie).
Marsh Posté le 25-10-2006 à 11:13:04
oui c'est juste.
J'ai l'ipression que le schéma de micgre2 donnera qqc de mieux. J'ai hate de voir un résultat final!
Marsh Posté le 25-10-2006 à 11:19:52
couliman a écrit : oui c'est juste. |
Parce que la formule a l'air plus impressionnante ?
En fait ca va dépendre de pas mal de trucs je pense, genre de la taille du mur, de la hauteur de la photo, de sa résolution...
micgre2, t'as une idée des dimensions que tu veux ?
Marsh Posté le 25-10-2006 à 13:30:08
2ème essai plus concluant
Original :
Transformation :
Marsh Posté le 25-10-2006 à 14:07:00
les dimensions que je souhaite (environ) : 1000 x 600 (mm)
Marsh Posté le 25-10-2006 à 14:17:25
Voici les nouveau résultats :
Original :
Image générée si l'on veux la visionner à une distance de 0.5x la largeur de l'image originale :
Image générée si l'on veux la visionner à une distance de 1x la largeur de l'image originale :
Image générée si l'on veux la visionner à une distance de 2x la largeur de l'image originale :
Quest-ce que vous en dite ?
Vous trouvez tout ça cohérent ?
Marsh Posté le 25-10-2006 à 14:21:00
xtremdev a écrit : 2ème essai plus concluant |
Tu as utilisé quel méthode ? Tu fais ça avec un soft ?
Marsh Posté le 25-10-2006 à 14:24:27
micgre2 a écrit : Tu as utilisé quel méthode ? Tu fais ça avec un soft ? |
En faite je suis parti de tes calculs et j'ai obtenu un maillage qui etait de plus en plus serré vers les extrémités.
J'ai refais les calculs et ma solution m'a donné exactement le même résultat avec une autre formule !
Finalement, j'ai feinté pour inverser le maillage (serré => lache au lieu de lache => serré)
Pour le soft, c'est moi qui l'ai fait.
Et toi t'en dis quoi ? la logique est bien que le maillage aiile du serré vers moins serré... non ?
Marsh Posté le 25-10-2006 à 15:26:48
Heu... après réflexion et construction géométrique à l'appui, le maillage devrait être de plus en plus serré en partant du centre et en allant vers l'extérieur.
ce qui donne :
Voici les nouveau résultats :
Original :
Image générée si l'on veux la visionner à une distance de 0.5x la largeur de l'image originale :
Image générée si l'on veux la visionner à une distance de 1x la largeur de l'image originale :
Image générée si l'on veux la visionner à une distance de 2x la largeur de l'image originale :
Ce coup-ci je crois que c'est bon....
Marsh Posté le 25-10-2006 à 15:33:32
Pour vérifier, tu peux toujours imprimer tes grilles, plier la feuille à 90° et les regarder aux distances que tu donnes...
Marsh Posté le 25-10-2006 à 15:46:37
lfs a écrit : Pour vérifier, tu peux toujours imprimer tes grilles, plier la feuille à 90° et les regarder aux distances que tu donnes... |
C'est ce que je fais mais c'est pas évident de regarger une grile de 21 cm de large en mettant son pif à 21cm de la pliure et estimer si c'est correct.
Il faut être caméléon pour ça
Marsh Posté le 25-10-2006 à 21:47:19
J'ai imprimé ta grille sur deux A4 et je l'ai scotché dans un angle... Voici le résultat :
Le collage :
Le résultat vu d'environ 30cm :
Ca a l'air pas trop mal...
Marsh Posté le 26-10-2006 à 20:12:09
xtremdev a écrit : |
Tu programmes ça avec quel langage? c++?
Marsh Posté le 17-10-2006 à 21:11:40
Hello,
Je cherche a creer un panorama trompe l'oeil pour mettre dans le coin d'une pièce : si on se rapproche suffisament on pourrait se croire dans le paysage.
Pour ca, j'ai beau réflechir, je ne sais pas comment m'y prendre...