IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Transformation affine d'une image


Sujet :

OpenCV

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Transformation affine d'une image
    Bonjour à tous,

    J'essai, depuis le flux d'une webcam qui filme un demi-globe, de reproduire la vision panoramique comme on pourrait l'avoir dans une voiture.

    J'arrive déjà à avoir le panoramique simple et couper mon image afin d'avoir la vision centrale, gauche, droite et arrière.

    Ce que je n'arrive pas a faire par contre c'est appliquer une transformation affine à mes vues droite et gauche pour avoir l'effet désiré.

    Puisque une image parle mieux que 1000 textes voici un apercu du résultat auquel je souhaiterais arriver (c'est un montage photoshop)


    En partant de ceci :

    Je me doute bien qu'il faut que je fasse un wrapAffine avec pour comme parametre un getAffineTransform. Mais je n'ai aucune idée de ce qu'il faut que je passe à getAffineTransform.

    Si quelqu'un à une idée et un bout de code ;-)

    Au passage si quelqu'un à une idée de comment remplir une Matrice image vide pour éviter ce fond bleu. Pour l'instant c'est une grande matrice dans laquelle je copie simplement mes 4 matrices de mes 4 vues sans pour autant l'avoir pré-rempli avec un fond.

  2. #2
    Invité
    Invité(e)
    Par défaut Transformation affine
    Bonjour,
    J'utilise la transformation affine pour caler des plans (application fondamentale en matière de SIG), Mais j'avoue ne pas très bien comprendre la transformation qui fait passer d'une image à l'autre.
    La fonction est de la forme
    X = TX + XX . x + XY . y
    Y = TY + YX . x + YY . y
    Où x et y sont les coordonnées d'un point à transformer
    TX, TY XX, XY, YX, YY les 6 paramètres de la transformation affine
    X et Y les coordonnées du point transformé.
    Pour trouver les 6 paramètres, il faut avoir 3 couples de points et résoudre le système. J'ai une fonction qui fait cela.
    Je travaille en C, le ne sais pas si ça ira.
    Concernant le fond bleu, à la création il suffit de créer un rectangle plein de la couleur voulue.
    Cordialement.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    pour ceux que ca interessent :
    getPerspectiveTransform(const Point2f src[], const Point2f dst[])

    un Point2f c'est un point localisé par son abscisse et son ordonnée (point2f.x,point2f.y) tu lui fais donc passer les coordonnées d'un point dans l'image d'origine et les nouvelles coordonnées du même point dans ta nouvelle image. La fonction te retournera la matrice de la transformation affine.

    pour le bleu tu balaye toute ta matrice en modifiant pixel par pixel ca valeur.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Sauf erreur de ma part, une fonction ne prenant que 2 points comme argument ne peut pas définir une transformation affine.
    Pour définir une homothétie-rotation, il faut 2 vecteurs, c'est à dire un vecteur de départ et un vecteur d'arrivée.
    Pour définir une affinité, il faut un rapport d'affinité. Pour définir une transformation affine, il faut 3 points connus dans les deux systèmes, c'est à dire avant et après transformation.
    Cordialement.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    Citation Envoyé par snowpy Voir le message
    const Point2f src[]
    tableau ?

    j'ai pas dit qu'il falait qu'un seul point

    Parameters: •src – Coordinates of a triangle vertices in the source image
    •dst – Coordinates of the corresponding triangle vertices in the destination image

  6. #6
    Invité
    Invité(e)
    Par défaut
    Oui, pardon, j'ai lu trop vite.
    En fait, je n'avais lu que le texte, et trop rapidement
    Par ailleurs, le terme "Perspective" dans le nom de la fonction m'a un peu étonné, je ne pense pas qu'une perspective soit une transformation affine.
    D'ailleurs, est-ce bien d'une transformation affine dont a besoin Caubios?

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    je dirais qu'il a plutot besoin de warpPerspective que de warpAffine (ta fait un lapsus la ) warpPerspective va transformer l'image de manière à se qu'elle soit visible, si il fait juste une transfo affine, il fait une rotation c'est tout et l'image sera pas bonne. le warpPerspective te permet de recréer l'effet de perspective à l'origine mais ici cela fonctionne très bien (très bien à prendre avec des pincettes j'ai pas dis que l'image serait parfaite non plus ^^)



    edit: dans se cas la c'est plus getPerspectiveTransform mais warpAffine qui fonctionne de la même facon à peu de chose près.

Discussions similaires

  1. transformation couleur d'une image
    Par okitrinaw dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 01/04/2012, 13h28
  2. Transformation Affine d'une image
    Par b_reda31 dans le forum Contribuez
    Réponses: 5
    Dernier message: 17/12/2011, 02h20
  3. Transforme Fourier pour une image rgb
    Par mihaispr dans le forum Images
    Réponses: 2
    Dernier message: 14/07/2009, 11h43
  4. transformation matrice en une image
    Par dhekrasousou dans le forum Débuter
    Réponses: 1
    Dernier message: 24/02/2009, 00h31
  5. [java - SQL] transformer une Image en BLOB ?
    Par pierre.zelb dans le forum JDBC
    Réponses: 3
    Dernier message: 04/07/2005, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo