Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| correction de parallaxe de vos photo | |
| | Auteur | Message |
---|
mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: correction de parallaxe de vos photo Mar 24 Mar 2015 - 22:56 | |
| En cherchant a développer mon petit logiciel de trucage d'image, je suis confronté à un problème de parallaxe (je ne suis pas sur que ce soit l'expression exact ) Quand une photo est prise du bas d'un immeuble l'effet est flagrant, les murs s'écartent! avec un bout de mon programme je suis parvenu à corriger cet effet. Toutefois il reste une bizarrerie que je soumet à vous: Pour que l'image projeté de la photo reste de même taille quand on la tourne, je calcul un facteur d'échelle qui rallonge l'image en compensation. Pourquoi faut il diviser l'angle "a" par 70 pour que mon calcul d'échelle soit a peut prêt correct ? A par cela ce logiciel est complet - Code:
-
dim a,xm,ym ,proph,roph,b,c,pi label correc,rotpho pi=acos (-1) width 0,1000: height 0,1000 : border_small 0 :left 0,250 scene3d 1:left 1,200:top 1,50:width 1,600:height 1,600 print "correction de l'angle de prise de vue " form 303 : left 303,0 :top 303,420 :height 303,100 :width 303,240 : caption 303,"Photo" : command_target_is 303 main_menu 81 sub_menu 83 : caption 83,"correction" : parent 83,81 :on_click 83,correc sub_menu 84 : caption 84,"portait-paysage" : parent 84,81 :on_click 84,rotpho scroll_bar 307 :top 307,0 :min 307,-45:max 307,45:position 307,0 alpha 317:caption 317,"parallaxe":top 317,20 :left 317,130 3d_cube 10,1 :3d_scale 10,3,4,1 3d_load_texture 10,"votrephoto.bmp" roph=0
end
correc: a =position (307) 3d_rotate 10,a,0,0 proph=even(roph) if proph =1 3d_scale 10,6,(4/cos(a/(20*pi))),0.1 else 3d_scale 10,4,(6/cos(a/(20*pi))),0.1 end_if b=cos (a/64) print a print b return
rotpho: roph=roph+1 gosub correc return
je poste la photo test sur le webdav (dossier parallaxe) PS le programme est corrigé merci jicehel , papydall et tout ceux qui prennent du temps pour me repondre
Dernière édition par mindstorm le Mer 25 Mar 2015 - 19:28, édité 2 fois | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: correction de parallaxe de vos photo Mar 24 Mar 2015 - 23:39 | |
| - minderstorm a écrit:
- Pourquoi faut il diviser l'angle "a" par 70 pour que mon calcul d'échelle soit a peut prêt correct ?
Je n'ai pas testé le programme; j'ai juste parcouru le code Ligne 9 - Code:
-
scroll_bar 307 :top 307,0 :min 307,-45:max 307,45:position 307,0 Tu utilises des valeurs en DEGRES, or les lignes trigonométriques sont calculées en RADIANS, c’est pourquoi ça ne marche pas. Je pense que tu as tâtonné un peu pour trouver la valeur 70 (qui n’est pourtant pas la bonne !) Voici comment tu dois faire : Ajoute à ton code - Code:
-
dim pi : pi = acos(-1) Modifie la ligne 9 - Code:
-
scroll_bar 307 :top 307,0 :min 307,0-pi/4:max 307,pi/4:position 307,0 Modifie les lignes 21 et 23 en mettant cos(a) au lieu de cos(a/70) et ça doit marcher: parole de Papydall | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: correction de parallaxe de vos photo Mer 25 Mar 2015 - 12:29 | |
| merci Papydall, malheureusement le code est déjà en radian grade j'ai compris qui a bien pu mettre des angles dans une unité pareil je connais le grade pour la topographie le degré pour l'école élémentaire mais le radian je corrige se soir | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: correction de parallaxe de vos photo Mer 25 Mar 2015 - 15:29 | |
| - minstorm a écrit:
- qui a bien pu mettre des angles dans une unité pareil
je connais le grade pour la topographie le degré pour l'école élémentaire mais le radian Le radian dont le symbole est rad est l’unité qui sert à mesurer les angles plans. Par définition, un angle d’un radian est l’angle au centre d’un cercle qui intercepte sur la circonférence de ce cercle un arc dont la longueur est égale au rayon de ce même cercle. Un cercle complet représente un angle plein qui vaut 2*pi radians. Pourquoi utilise-t-on des radians et non des degrés ou des grades ? C’est tout simplement parce qu’on ne peut pas faire autrement ! Je m’explique : Lorsqu’on a besoin de dériver ou d’intégrer une fonction trigonométrique, l’angle pouvant se retrouver en facteur, or seule une valeur en radians a un sens et le calcul des fonctions trigonométriques par une série de Taylor suppose que les angles soient exprimés en radians. C’est une condition impérative ! Voici les relations entre les grades, les degrés et les radians Un radian vaut environ 57.3° soit 57° 18’ ou 360/2pi Un degré vaut approximativement 17.5 milliradians. On utilise les formules suivantes pour les conversions : Angle(en degrés) = Angle(en radians) * 180/pi Angle(en radians) = Angle(en degrés) * pi/180 Angle(en grades) = Angle(en radians) * 200/pi Angle(en radians) = Angle(en grades) * pi/200 PI vaut 3.14159265359.... J'espère que tu vas te concilier avec le radian. De toutes les façons, on n'a pas de choix : si on veut utiliser les fonctions trigonométriques, on doit faire avec. Le radian est très sympa, personnellement je suis en bonne entente avec lui. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: correction de parallaxe de vos photo Mer 25 Mar 2015 - 17:20 | |
| De toutes façons, la conversion entre degrés, grads et radians est simple. Sachant que - Code:
-
dim pi : pi = acos(-1) (Merci, Papydall - pour ma part, je passais par atn...) et que pi correspond à 180 degrés ou 200 grad, alors il suffit de faire une simple proportionnalité: - Code:
-
sub DegreToRadian(deg) if variable("DegreToRadian")=0 then dim DegreToRadian DegreToRadian = (deg%*pi)/180 end_sub sub GradToRadian(deg) if variable("GradeToRadian")=0 then dim GradToRadian GradToRadian = (deg%*pi)/200 end_sub
et idem pour les fonctions de retour... Le résultat se trouvera dans une variable portant le même nom que la SUB en question. | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: correction de parallaxe de vos photo Mer 25 Mar 2015 - 18:52 | |
| Je suis bien contant ... je savais que vous seriez prompt a me répondre et avec une précision pédagogique. Pour cela, un très grand MERCI pour nous tous. Pour cela je ne regrette pas de ne pas avoir lu correctement l'aide qui stipulait bien les radians.
Maintenant, nous avons un logiciel qui est capable de corriger l'angle de prise de vue d'un appareil photo et cela nous ouvre les portes de l'orthophotographie . Pas de panique il n'y a pas de dictée en vue! Il s'agit d'une photo corrigé sur laquelle il est possible de mesurer comme sur une carte ou un plan. Si tout est fait correctement les angles et les cotes sont mesurables directement. Les usages sont multiples: Cartographie , Architecture mais aussi assemblage de photo pour faire un poster...
Il y a de nombreuses années que je cherche un logiciel simple pour faire cela et bien sur, quand tout les outils sont sous votre nez!
Les algorithmes nécessaires sont très lourds et je ne métrise pas les matrices mais, mais , mais Panoramic les utilises déjà pour le module 3D il suffit de lui demander gentiment .
ps le logiciel est corrigé dans le premier poste | |
| | | Contenu sponsorisé
| Sujet: Re: correction de parallaxe de vos photo | |
| |
| | | | correction de parallaxe de vos photo | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |