Redressement de photo

Page 1 sur 2 1, 2  Suivant

Aller en bas

Redressement de photo

Message par Dlzlogic le Ven 8 Sep - 22:13

http://www.les-mathematiques.net/phorum/read.php?8,1517560
Je pensais avoir créer un sujet à partir de ce discussion, j'ai du faire une fausse manipe.
C'est un sujet classique, plus connu sous le nom de "redressement de façade".
C'est un sujet que je connais bien, je peux donner des renseignement à cette question.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Sam 9 Sep - 11:09

Bonjour,
Ce problème n'est pas inintéressant. La méthode "redressement de façade" ne donne pas de bons résultats. A cause de la position de la caméra et de la focale utilisée, la déformation due à la perspective est assez négligeable par rapport à la déformation due à l'affinité. La méthode de Pappus est à mon avis à creuser.
http://www.les-mathematiques.net/phorum/read.php?8,751743
Sujet intéressant pour le week-end.
Je pars sur l'hypothèse suivante :
Sur une photo j'ai le rectangle de longueur environ 4/5 de la largeur du terrain et largeur 16 mètres (?), donc, un quadrilatère, image d'un rectangle de dimensions connues et à l'intérieur un point à déterminer par rapport au rectangle.
Nota. je n'y connais rien en foot. La longueur de ce rectangle est-elle fixe ou pas. Bref, tout renseignement concernant l'aspect métrique de ce sport m'intéresse.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Sam 9 Sep - 13:37

Quelques dessins et lectures plus tard ...
Etant donné ce que j'ai dit précédemment, j'ai fait une transformation affine pure et dure. Naturellement, le résultat est peu précis.
L'inconvénient du redressement de façade, tel quel, est qu'il produit une image. Celle-ci, est totalement inutilisable. Par contre, la technique est la même, donc, en ce qui me concerne, le problème est résolu.
Dans la pratique, les 4 points de la surface de réparation déterminent les directions de perspective c'est à dire les points de fuite. Ceci permet de calculer une image redressée. C'est à dire que les côtés opposés seront rendus parallèles en corrigeant les 4 angles en fonction de l'effet de perspective (éloignement).
Dans un deuxième temps, on applique la transformation affine, le 4è sommet étant en surnombre, ce qui permet d'avoir une très bonne précision.
A noter que dans le résultat numérique final, certainement aucune des valeurs théoriques ne sera respectée, par contre la position des points à définir, le ballon en l'occurrence, sera donnée avec la meilleure position possible.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Jeu 21 Sep - 12:11

Le sujet est toujours actif sur Les-Mathématiques.net, et il semblerait que certaines vérifications ne donnent pas vraiment satisfaction.
Qu'en pensez-vous ?
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Ven 22 Sep - 11:19

Bonjour,
Ce sujet devient de plus en plus intéressant.
Un nouvel intervenant est arrivé. Apparemment il connait bien les problèmes de projection, de géométrie projective etc., mais il lui manque la connaissance des notions de calage, utilisation de la méthode des moindres carrés, compositions des erreurs, bref tout ce que j'essaye d'expliquer depuis des années.
Voila la réponse que je pourrais donner à GBZM
GBZM a écrit:Je ne comprends absolument pas ce que tu racontes, Mauricio. Qu'est-ce que tu veux dire par "Python a tendance à tricher" ? Tricher sur quoi ? Il n'y a aucune interpolation de faite en Sage. Juste des calculs sur les coordonnées de points relevées sur la photo, calculs qui consistent à calculer une matrice d'homographie qui envoie quatre points du plan sur quatre autres points du plan.

Pourrais-tu être plus clair ? Là, j'ai l'impression que tu imagines je ne sais quelle magie dans le traitement fait en Sage.
Concernant Python : si on utilise une fonction évoluée d'un logiciel évolué, alors, il y a forcément des choix qui ont été faits par l'analyste. A moins que l'algorithme soit parfaitement détaillé dans le document d'aide, ce qui m'étonnerait, l'utilisateur ne peut pas avoir toutes les informations.
Avec Sage, ça me partait encore plus évident. Je ne sais pas si le terrain est parfaitement plan, en tout cas, il n'est certainement pas horizontal. J'ai utilisé la méthode sortie par Sage, il y a un problème bien connu en informatique : des différence de deux nombres qui ont approximativement le même ordre d'idée, c'est à dire qu'on perd des chiffres significatifs à chaque opération.
D'autre part, GBZM parle de quatre points, or, sauf erreur de ma part, la transformation dont il parle (l'homographie) n'a besoin due de trois points.
En conclusion, je confirme que ces méthodes utilisées ne sont pas les bonnes.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par leon1789 le Ven 22 Sep - 16:51

Bonjour

Dlzlogic a écrit:
D'autre part, GBZM parle de quatre points, or, sauf erreur de ma part, la transformation dont il parle (l'homographie) n'a besoin due de trois points.

Au cas où quelqu'un qui ne serait pas géomètre lirait, je préfère prévenir qu' une homographie dans le plan projectif est donnée par

X' = ( aX + bY + c ) / ( gX + hY + i )
Y' = ( dX + eY + f ) / ( gX + hY + i )

où les X,Y, X', Y' désignent les coordonnées des points avant et après transformation.

Il y a essentiellement 8 coefficients à calculer (le neuvième étant "libre"), il faut donc 4 points pour définir l' homographie (8 / 2 = 4)

A bon entendeur !
avatar
leon1789

Messages : 1063
Date d'inscription : 11/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Ven 22 Sep - 17:46

Bonjour,
@Léon.
Quand on sait pas de quoi on parle, on se tait.
Le problème est parfaitement posé, la solution ne nécessite ni de géométrie projective, ni l'utilisation de Sage.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par leon1789 le Ven 22 Sep - 17:50

Dlzlogic,

je m'adresse à un éventuel lecteur non géomètre...   Toi, tu es géomètre expert, donc tu sais parfaitement tout ça.

J'ajoute deux références au cas où ce lecteur en aurait besoin...
http://fr.wikipedia.org/wiki/Application_projective#Expression_analytique_des_applications_projectives
http://perso.ensta-paristech.fr/~filliat/Courses/MasterSDI/UEVision03_Vision3D.pdf   (page 8 , avec de belles images redressée grâce à la géométrie projective)

ou carrément
http://www.google.fr/search?q=homographie+projective
avatar
leon1789

Messages : 1063
Date d'inscription : 11/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Ven 22 Sep - 17:56

Bon, alors, soyons clair.
On peut prendre un canon pour tuer une mouche. Ca marchera peut être, mais ce n'est certainement pas la bonne solution.
Pour preuve, la longueur de ce sujet et ça dure depuis 3 semaines.
Je vais aller voir le deuxième lien.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Ven 22 Sep - 18:08

Bon, au moins le début, il s'agit du redressement de façade, c'est à dire que la façade est plane, la plaque photographique aussi.
Ce problème se résout très bien avec le notions de géométrie Euclidienne. L'utilisation de la géométrie projective n'est nécessaire que pour redresser une image 3D, soit avec 2 points de vue, soit en connaissant le Z de points de calage.
Mon programme "Facade" existe depuis plus de 15 ans, j'ai redressé des dizaines de façades, alors si ça ne marchait pas je pense que je m'en serais rendu compte.
Ce truc, c'est vraiment l'art de se compliquer les choses. Tant mieux si ça marche. Mais fais tout de même attention un certain Bruno Ingrao, pour me prouver que je disais des bêtises m'a donné un lien sur un "redresseur de façade" j'ai chopé un virus !
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Ven 22 Sep - 18:16

Par ailleurs, si tu as une photo de façade à redresser, envoies là je me ferai un plaisir de te la redresser gratuitement.
Pour info, mon programme prévoit aussi que si pour certaines raisons on ne peut pas photographier la façade en une fois, il est prévu le recollage des morceaux. Il est aussi possible d'intégrer un projet, c'est à dire une image de face, dans une photo sans correction.
Bon, c'est un problème que je connais bien, alors évite de dire trop de bêtises.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par leon1789 le Ven 22 Sep - 18:17

Dlzlogic a écrit:Le problème est parfaitement posé, la solution ne nécessite ni de géométrie projective, ni l'utilisation de Sage.
(...)
Par ailleurs, si tu as une photo de façade à redresser, envoies là je me ferai un plaisir de te la redresser gratuitement.
ok, ton programme donne quel résultat sur la position du point I (la position du pied du tireur) dans le problème posé ?
l'image est là http://www.les-mathematiques.net/phorum/read.php?8,1517560
avatar
leon1789

Messages : 1063
Date d'inscription : 11/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Ven 22 Sep - 18:28

Si ce problème t'intéressait, je te répondrai peut être. Manifestement, ta seule préoccupation est de me contredire. Ca ne m'intéresse pas.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par leon1789 le Ven 22 Sep - 18:50

Pour l'éventuel lecteur qui ne serait pas géomètre expert,
voilà comment on peut résoudre très facilement le problème pour avoir la position du point I :
(il suffit de résoudre un système linéaire pour trouver les 8 paramètres de l'homographie, puis de calculer l'image du point I)

Code:

f := (X_, Y_, X, Y) ->
 [X_ - ( a*X + b*Y + c ) / ( g*X + h*Y + i ),
 Y_ - ( d*X + e*Y + f ) / ( g*X + h*Y + i)] ;

S := numer({
 op(f(0,916,440,179)),
 op(f(550,916,601,200)),
 op(f(550,-916,227,346)),
 op(f(0,-916,39,318)),
 i = 1.}) ;

 -->  S := {-440 a - 179 b - c, -39 a - 318 b - c,
        403040 g + 163964 h + 916 i - 440 d - 179 e - f,
        330550 g + 110000 h + 550 i - 601 a - 200 b - c,
        550516 g + 183200 h + 916 i - 601 d - 200 e - f,
        124850 g + 190300 h + 550 i - 227 a - 346 b - c,
        -207932 g - 316936 h - 916 i - 227 d - 346 e - f,
        -35724 g - 291288 h - 916 i - 39 d - 318 e - f, i = 1.}

S := solve(S) ;

-->  S := {g = -.00009345137935, d = 1.796893694, e = -12.96128392,
        f = 2671.112985, h = .001606090555, a = 3.140044333,
        b = 9.058689048, c = -3003.124846, i = 1.}


 subs(S, f(I1,I2, 825,332)) ;

-->   [I1 - 1782.056534, I2 + 102.7356932]
Les mesures sont en centimètres.

Grosso-modo, le point I en rouge se trouve à 17.8 m devant les buts, décalé par rapport au centre de 1 m sur le coté.

avatar
leon1789

Messages : 1063
Date d'inscription : 11/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Ven 22 Sep - 21:50

Décidément, tu m'étonneras toujours.
Sur Les-Mathématiques.net, les meilleurs matheux donnent des solutions, qui paraissent peu précises, discussions, échanges etc.
Toi, tu connais le sujet depuis le début des échanges, et au bout de trois semaines, tu sors une solution.
Par contre, il ne serait pas venu à l'idée d'utiliser la méthode que je décris, quitte à avoir des arguments pour me contrer.
Décidément, tu ne fréquentes les forum que pour être contradicteur et négatif.
Les différents lecteurs jugeront de ta crédibilité et des services que tu pourrais rendre.
Bref, on se demande vraiment pourquoi tu n'as pas donné ta solution il y a trois semaines.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par leon1789 le Ven 22 Sep - 22:03

Dlzlogic a écrit:Décidément, tu ne fréquentes les forum que pour être contradicteur et négatif.
Je pense être positif et très concret, la preuve ci-dessus
(références sur le web, explications mathématiques simples, exemple numérique) !

Et toi, où sont tes résultats promis ?


Dlzlogic a écrit:Toi, tu connais le sujet depuis le début des échanges, et au bout de trois semaines, tu sors une solution.
(...)Bref, on se demande vraiment pourquoi tu n'as pas donné ta solution il y a trois semaines.
C'est que je viens de, juste en fin d'après midi, lire l'énoncé du problème !
Trois lignes de code, et hop, les premiers calculs sont réalisés.

Dlzlogic a écrit:Les différents lecteurs jugeront de ta crédibilité et des services que tu pourrais rendre.
Absolument, ils jugeront de nos crédibilités qui sont assez différentes.

Dlzlogic a écrit:Décidément, tu m'étonneras toujours.
Ce n'est pas réciproque.
avatar
leon1789

Messages : 1063
Date d'inscription : 11/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Ven 22 Sep - 22:35

Ben dis donc, GaBuZoMeu doit être jaloux de tes compétences.
Tout de même un petit point d'explication.
Ces méthodes ne reposent que sur des méthodes de calcul général, c'est dire utilisent du calcul matriciel qui comporte forcément la différence de nombre approximativement de même grandeur. Les calculs informatiques n'aiment pas du tout cela. Cela marche très bien pour les exercices où les valeurs sont des nombres qui marchent bien, et marchent très bien sur le papier, mais il en est autrement dans le monde réel, naturellement, c'est une chose que tu ignores. Il y a eu une discussion très intéressante à ce sujet : un fameux système que les calculs matriciels ne savaient pas résoudre sans donner des résultats aberrants, alors qu'un calcul basique résolvait assez bien ce système.
Mauricio a bien mis le doigt sur ce problème qui a été gentiment balayé par GaBuZoMeu.
Bravo les matheux.
Bon, Léon, va montrer ta science sur Les-Mathématiques.net, ça sera mieux.
Disons qu'ici, on essaye d'être positifs et constructifs.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par leon1789 le Ven 22 Sep - 23:20

Dlzlogic a écrit:Ben dis donc, GaBuZoMeu doit être jaloux de tes compétences.
Je constate surtout que je trouve la même chose que lui, bien que de son coté, il utilise des calculs plus sophistiqués pour trouver les coefficients de l'homographie.

Dlzlogic a écrit: c'est une chose que tu ignores.
Je ne prétends pas inventer quoi que ce soit (les matheux l'ont déjà depuis des siècles), je laisse aux informaticiens experts le soin de trouver des algorithmes efficaces.

Je voulais juste intervenir pour un lecteur éventuel qui n'aurait pas compris le b.a.ba de l'utilisation simple et essentielle de la géométrie projective.

De mon coté, je comprends pourquoi on applique le calcul matriciel comme c'est expliqué dans les livres ou les cours de haut niveau en informatique,
comme ici http://master-ivi.univ-lille1.fr/fichiers/Cours/VisA-semaine-1-camera-calibration.pdf (calibration de caméra)
ou là http://perso.ensta-paristech.fr/~filliat/Courses/MasterSDI/UEVision03_Vision3D.pdf  (ENSTA ParisTech)
voire même http://devernay.free.fr/cours/vision/pdf/vision3_projective.pdf   (Computer Vision Research at INRIA)
...il y en a à foison !

Dlzlogic a écrit:Disons qu'ici, on essaye d'être positifs et constructifs.
Je pense être positif et très concret, la preuve ci-dessus :
multiples références sur le web (où on peut voir de belles images redressées), une explication mathématique simple, et un exemple numérique !

Et toi, où sont tes résultats annoncés et promis ?
avatar
leon1789

Messages : 1063
Date d'inscription : 11/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Sam 23 Sep - 10:41

Bonjour,
Il me semble utile de préciser certaines choses.
Je t'ai déjà demandé plusieurs fois le but de tes interventions sur le forum, tu n'as jamais répondu, donc inutile de recommencer.
Ce que tu ignores, c'est le monde réel du calcul mathématique réel, pour la simple raison que tu n'en as jamais fait. Tu ne réponds que sur des cas particuliers.
Concernant la géométrie projective, elle est utile lorsque l'objet à projeter est en 3D, c'est à dire comporte un Z. Par contre lorsque l'objet est plan, la géométrie euclidienne répond parfaitement aux problèmes. Il faut reconnaitre que pour dire le contraire, je pense qu'il ne faut connaitre de la géométrie projective que le nom et la formule.

Ah, le calcul matriciel ! J'ai déjà expliqué que les matrices étaient un outil mathématique pour faciliter les calculs sur papier ou au tableau noir. Pour le problème simple de résolution de système linéaire, j'ai fait les tests nécessaires. D'une part je me suis offert le luxe d'écrire les modules de calcul matriciel (inversion, transposée, etc) et j'ai fait le calcul en mode "matriciel", d'autre part j'ai utilisé ma fonction de résolution de système linéaire. Après comparaison la conclusion est évidente.

Le sujet d'origine demande une méthode, une technique pour faire une certaine opération, toi tu donnes un résultat, non contrôlé et sans qu'on ait la moindre idée de la précision obtenue.

"Très belle image redressée" ! faut tout de même pas exagérer. La déformation est faible, elle est assez petite, en noir et blanc.

Moi, j'ai donné la méthode, pas vraiment en détail, mais je n'ai jamais rien annoncé ni rien promis.
Ton graphisme est tout à fait déplacé.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par leon1789 le Sam 23 Sep - 11:58

Bonjour

Dlzlogic a écrit: je n'ai jamais rien annoncé ni rien promis.
voir les (*) ci-dessous.

Histoire sans (trop de) parole(s) :

Dlzlogic a écrit:C'est un sujet que je connais bien, je peux donner des renseignement à cette question.
ok Smile
Dlzlogic a écrit: en ce qui me concerne, le problème est résolu.(*) 
parfaite annonce Smile
Dlzlogic a écrit:Bon, c'est un problème que je connais bien, alors évite de dire trop de bêtises.
oh ! No
Dlzlogic a écrit: sauf erreur de ma part, la transformation dont il parle (l'homographie) n'a besoin que de trois points..
aïe, c'est 4 points. Sad
Dlzlogic a écrit:On peut prendre un canon pour tuer une mouche. Ca marchera peut être, mais ce n'est certainement pas la bonne solution.
ah ? ... Neutral
Dlzlogic a écrit:Le problème est parfaitement posé, la solution ne nécessite ni de géométrie projective, ni (...)
L'utilisation de la géométrie projective n'est nécessaire que pour redresser une image 3D,
heu... nécessaire ou pas ? confused
Dlzlogic a écrit:Ce truc, c'est vraiment l'art de se compliquer les choses. Tant mieux si ça marche.
ah... Smile
Dlzlogic a écrit:Par ailleurs, si tu as une photo de façade à redresser, envoies là je me ferai un plaisir de te la redresser gratuitement. (*)
super promesse bounce
Dlzlogic a écrit:ta seule préoccupation est de me contredire. Ca ne m'intéresse pas.
ah.... Sleep
Dlzlogic a écrit:c'est une chose que tu ignores.
oh ! No
Dlzlogic a écrit:c'est le monde réel du calcul mathématique réel, pour la simple raison que tu n'en as jamais fait.
amusant Rolling Eyes
Dlzlogic a écrit:toi tu donnes un résultat,
et toi aucun résultat. Basketball
Dlzlogic a écrit:Quand on sait pas de quoi on parle, on se tait.
absolument !  cheers

Dlzlogic a écrit:Ton graphisme est tout à fait déplacé.
et tes propos ??  Twisted Evil
Dlzlogic a écrit:Bravo les matheux.
Grand merci à toi Dlzlogic pour ce dernier message tout en douceur ! flower
avatar
leon1789

Messages : 1063
Date d'inscription : 11/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Sam 23 Sep - 12:28

T'as vraiment rien d'autre à faire ?
Pour qui tu te prends ?
Tu ne pense pas que tout se passerait mieux si tu t'occupais d'autre chose ?
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par leon1789 le Sam 23 Sep - 12:36

bounce
Le sujet était intéressant, avec un peu de géométrie, et pas mal de littérature consultable.
Merci à toi de nous avoir montré ce que tu es capable d'écrire et de faire.

A bon entendeur !
avatar
leon1789

Messages : 1063
Date d'inscription : 11/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Sam 23 Sep - 13:42

Petite expérience personnelle.
J'ai essayé de redresser l'image du dallage de la page 17.
http://master-ivi.univ-lille1.fr/fichiers/Cours/VisA-semaine-1-camera-calibration.pdf
Le résultat n'est pas vraiment satisfaisant, pourtant cette image devrait correspondre à une vue en perspective de l'image carrée.
En d'autres termes, je ne suis pas sûr que cette transformation redresse l'effet de perspective.
A suivre.
SUITE
Il se trouve que les contrôles de vraisemblance de mon logiciel ont fonctionné, mail ils étaient trop sévères.
Il semble donc que cette méthode est intéressante. Il est dommage qu'elle n'était pas connue lors de cette discussion :
http://www.les-mathematiques.net/phorum/read.php?8,889606.
La formule fournie pas GBZM dans ce sujet doit avoir une quinzaine de lignes !
Pour être plus positif, je vais chercher à établir la méthode en prenant un nombre de points supérieur à 4.
Ca m'intéresserait beaucoup de savoir où je pourrais trouver la démonstration.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par leon1789 le Dim 24 Sep - 9:13

Bonjour

Petit message pour le lecteur éventuel qui n'aurait pas l'intention de réinventer l'eau chaude avec ses petits doigts sur son clavier.

Les logiciels de graphisme (comme Gimp par exemple) utilisent la géométrique projective pour redresser la perspective des images (Gimp montre la matrice de l'homographie utilisée !)

Exemple avec cette façade (image de droite) : http://www.les-mathematiques.net/phorum/read.php?8,751743,751774#msg-751774
Dans cette discussion, plusieurs personnes (Pappus, john_john, Infophile, ...)  expliquent, emploient, la géométrie projective et comparent leurs résultats...

(en une minute avec Gimp) On la redresse très facilement en précisant 4 points clefs (i.e. un rectangle, pour fixer deux lignes horizontales et deux lignes verticales) sur l'image d'origine et on obtient



Le cercle dessiné confirme la bonne qualité de la correction de perspective.
avatar
leon1789

Messages : 1063
Date d'inscription : 11/07/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Dlzlogic le Dim 24 Sep - 12:08

Bonjour Léon,
Bon, tu as montré que tu sais faire des recherches sur le net, C'est bien, bravo.
Gimp, fait comme il veut, s'il l'explique aussi, c'est parfait.

Code:
H [0, 0]  =  c * (-b0 + b2) * (a2*b1 - a3*b1 - a1*b2 + a3*b2 + a1*b3 -
a2*b3) * (a1*b0 - a3*b0 - a0*b1 + a3*b1 + a0*b3 - a1*b3)
H [0, 1]  =  (-1) * c * (-a0 + a2) * (a2*b1 - a3*b1 - a1*b2 + a3*b2 +
a1*b3 - a2*b3) * (a1*b0 - a3*b0 - a0*b1 + a3*b1 + a0*b3 - a1*b3)
H [0, 2]  =  (-1) * c * (a2*b1 - a3*b1 - a1*b2 + a3*b2 + a1*b3 - a2*b3)
* (-a2*b0 + a0*b2) * (a1*b0 - a3*b0 - a0*b1 + a3*b1 + a0*b3 - a1*b3)
H [1, 0]  =  (2) * c * (-b0 + b1) * (a2*b1 - a3*b1 - a1*b2 + a3*b2 +
a1*b3 - a2*b3) * (a2*b0 - a3*b0 - a0*b2 + a3*b2 + a0*b3 - a2*b3)
H [1, 1]  =  (-2) * c * (-a0 + a1) * (a2*b1 - a3*b1 - a1*b2 + a3*b2 +
a1*b3 - a2*b3) * (a2*b0 - a3*b0 - a0*b2 + a3*b2 + a0*b3 - a2*b3)
H [1, 2]  =  (-2) * c * (a2*b1 - a3*b1 - a1*b2 + a3*b2 + a1*b3 - a2*b3)
* (a2*b0 - a3*b0 - a0*b2 + a3*b2 + a0*b3 - a2*b3) * (-a1*b0 + a0*b1)
H [2, 0]  =  -a2^2*b0^2*b1 + 2*a2*a3*b0^2*b1 - a3^2*b0^2*b1 +
a2^2*b0*b1^2 - 2*a2*a3*b0*b1^2 + a3^2*b0*b1^2 + a1^2*b0^2*b2 -
2*a1*a3*b0^2*b2 + a3^2*b0^2*b2 - 2*a0*a1*b0*b1*b2 + 2*a0*a2*b0*b1*b2 +
2*a1*a3*b0*b1*b2 - 2*a2*a3*b0*b1*b2 + a0^2*b1^2*b2 - 2*a0*a2*b1^2*b2 +
2*a2*a3*b1^2*b2 - a3^2*b1^2*b2 - a1^2*b0*b2^2 + 2*a1*a3*b0*b2^2 -
a3^2*b0*b2^2 - a0^2*b1*b2^2 + 2*a0*a1*b1*b2^2 - 2*a1*a3*b1*b2^2 +
a3^2*b1*b2^2 - a1^2*b0^2*b3 + a2^2*b0^2*b3 + 2*a1*a3*b0^2*b3 -
2*a2*a3*b0^2*b3 + 2*a0*a1*b0*b1*b3 - 2*a0*a2*b0*b1*b3 - 2*a1*a3*b0*b1*b3
+ 2*a2*a3*b0*b1*b3 - a0^2*b1^2*b3 + 2*a0*a2*b1^2*b3 - a2^2*b1^2*b3 +
2*a0*a1*b0*b2*b3 - 2*a0*a2*b0*b2*b3 - 2*a1*a3*b0*b2*b3 +
2*a2*a3*b0*b2*b3 - 2*a0*a1*b1*b2*b3 + 2*a0*a2*b1*b2*b3 +
2*a1*a3*b1*b2*b3 - 2*a2*a3*b1*b2*b3 + a0^2*b2^2*b3 - 2*a0*a1*b2^2*b3 +
a1^2*b2^2*b3 - 2*a0*a1*b0*b3^2 + a1^2*b0*b3^2 + 2*a0*a2*b0*b3^2 -
a2^2*b0*b3^2 + a0^2*b1*b3^2 - 2*a0*a2*b1*b3^2 + a2^2*b1*b3^2 -
a0^2*b2*b3^2 + 2*a0*a1*b2*b3^2 - a1^2*b2*b3^2
H [2, 1]  =  (-1) * (a1^2*a2*b0^2 - a1*a2^2*b0^2 - a1^2*a3*b0^2 +
a2^2*a3*b0^2 + a1*a3^2*b0^2 - a2*a3^2*b0^2 - 2*a0*a1*a2*b0*b1 +
2*a1*a2^2*b0*b1 + 2*a0*a1*a3*b0*b1 + 2*a0*a2*a3*b0*b1 - 2*a1*a2*a3*b0*b1
- 2*a2^2*a3*b0*b1 - 2*a0*a3^2*b0*b1 + 2*a2*a3^2*b0*b1 + a0^2*a2*b1^2 -
a0*a2^2*b1^2 - a0^2*a3*b1^2 + a2^2*a3*b1^2 + a0*a3^2*b1^2 - a2*a3^2*b1^2
+ 2*a0*a1*a2*b0*b2 - 2*a1^2*a2*b0*b2 - 2*a0*a1*a3*b0*b2 +
2*a1^2*a3*b0*b2 - 2*a0*a2*a3*b0*b2 + 2*a1*a2*a3*b0*b2 + 2*a0*a3^2*b0*b2
- 2*a1*a3^2*b0*b2 - a0^2*a1*b2^2 + a0*a1^2*b2^2 + a0^2*a3*b2^2 -
a1^2*a3*b2^2 - a0*a3^2*b2^2 + a1*a3^2*b2^2 - 2*a0^2*a2*b1*b3 +
2*a0*a1*a2*b1*b3 + 2*a0*a2^2*b1*b3 - 2*a1*a2^2*b1*b3 + 2*a0^2*a3*b1*b3 -
2*a0*a1*a3*b1*b3 - 2*a0*a2*a3*b1*b3 + 2*a1*a2*a3*b1*b3 + 2*a0^2*a1*b2*b3
- 2*a0*a1^2*b2*b3 - 2*a0*a1*a2*b2*b3 + 2*a1^2*a2*b2*b3 - 2*a0^2*a3*b2*b3
+ 2*a0*a1*a3*b2*b3 + 2*a0*a2*a3*b2*b3 - 2*a1*a2*a3*b2*b3 - a0^2*a1*b3^2
+ a0*a1^2*b3^2 + a0^2*a2*b3^2 - a1^2*a2*b3^2 - a0*a2^2*b3^2 +
a1*a2^2*b3^2)
H [2, 2]  =  a1*a2^2*b0^2*b1 - 2*a1*a2*a3*b0^2*b1 + a1*a3^2*b0^2*b1 -
a0*a2^2*b0*b1^2 + 2*a0*a2*a3*b0*b1^2 - a0*a3^2*b0*b1^2 - a1^2*a2*b0^2*b2
+ 2*a1*a2*a3*b0^2*b2 - a2*a3^2*b0^2*b2 + 2*a0*a1*a3*b0*b1*b2 -
2*a0*a2*a3*b0*b1*b2 - 2*a1*a3^2*b0*b1*b2 + 2*a2*a3^2*b0*b1*b2 +
a0^2*a2*b1^2*b2 - 2*a0^2*a3*b1^2*b2 + 2*a0*a3^2*b1^2*b2 -
a2*a3^2*b1^2*b2 + a0*a1^2*b0*b2^2 - 2*a0*a1*a3*b0*b2^2 + a0*a3^2*b0*b2^2
- a0^2*a1*b1*b2^2 + 2*a0^2*a3*b1*b2^2 - 2*a0*a3^2*b1*b2^2 +
a1*a3^2*b1*b2^2 + 2*a1^2*a2*b0^2*b3 - 2*a1*a2^2*b0^2*b3 -
a1^2*a3*b0^2*b3 + a2^2*a3*b0^2*b3 - 2*a0*a1*a2*b0*b1*b3 +
2*a0*a2^2*b0*b1*b3 + 2*a1*a2*a3*b0*b1*b3 - 2*a2^2*a3*b0*b1*b3 +
a0^2*a3*b1^2*b3 - 2*a0*a2*a3*b1^2*b3 + a2^2*a3*b1^2*b3 -
2*a0*a1^2*b0*b2*b3 + 2*a0*a1*a2*b0*b2*b3 + 2*a1^2*a3*b0*b2*b3 -
2*a1*a2*a3*b0*b2*b3 + 2*a0^2*a1*b1*b2*b3 - 2*a0^2*a2*b1*b2*b3 -
2*a0*a1*a3*b1*b2*b3 + 2*a0*a2*a3*b1*b2*b3 - a0^2*a3*b2^2*b3 +
2*a0*a1*a3*b2^2*b3 - a1^2*a3*b2^2*b3 + a0*a1^2*b0*b3^2 -
2*a1^2*a2*b0*b3^2 - a0*a2^2*b0*b3^2 + 2*a1*a2^2*b0*b3^2 -
a0^2*a1*b1*b3^2 + 2*a0*a1*a2*b1*b3^2 - a1*a2^2*b1*b3^2 + a0^2*a2*b2*b3^2
- 2*a0*a1*a2*b2*b3^2 + a1^2*a2*b2*b3^2

J'ai vraiment du mal à me faire comprendre. Ci dessus, la formule envoyée par GaBuZoMeu à un demandeur. Simple, me diras-tu, c'est du 6è degré avec des soustraction de valeurs comparables.
J'ai lu un peu la doc de GIMP, j'ai cru comprendre qu'on déplaçait une grille de façon à obtenir l'effet voulu.
Si tu as lu la discussions concernée, tu as pu observer que j'avais fait le redressement avec mon outil et que j'avais précisé que je n'avais pas appliqué les rapports de mise à l'échelle. Et toi, comment as-tu fait ? tu as agit sur les poignées pour obtenir une rosace bien ronde ? et s'il n'y avait pas eu de rosace, comment aurais-tu fait ?

Ceci dit, je fréquente les forum de math pour parler de mathématiques et non de méthode de recherche sur le net.
Donc, ma question : comment justifier les formules d'homographie plane ? Connait-t-on la démonstration ? Y a-t-il des limites ? Comment se fait-il que la formule de GBZM soit si compliquée et soit du 6è degré ? Aurait-il appliqué la formule nécessaire au 3D qui, je sais, est très compliquée à la 2D, tout simplement ?
Donc, je vais faire, parce que j'en ai envie, le calcul d'une transformation d'une image où intervient la perspective avec un minimum de 4 points de calage.
avatar
Dlzlogic

Messages : 1431
Date d'inscription : 04/07/2017
Age : 74
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Redressement de photo

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum