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 :

Résultats aberrants avec cvSVD


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Par défaut Résultats aberrants avec cvSVD
    Bonjour,

    Je travaille sur l'estimation d'homographie à partir de points appariés dans deux iamges dans une application où je travaille avec OpenCV et je souhaite implanter une méthode basée sur la SVD (méthode de Hartley). J'aimerais donc utiliser la fonction cvSVD d'OpenCV seulement, même si elle ne plante pas le moins du monde, les résultats renvoyés sont aberrants, contrairement à ceux obtenus sous Matlab avec les mêmes données.
    Y a-t-il quelque chose de particulier à savoir sur l'utilisation de cette fonction ?
    Voici une partie de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    CvMat AMat = cvMat(nb_pts, 4, CV_32FC1, A), VMat = cvMat(4, 4, CV_32FC1, V), *UMat = cvCreateMat(nb_pts, 4, CV_32FC1), SMat = cvMat(4, 1, CV_32FC1, S);
     
    cvSVD(&AMat, &SMat, UMat, &VMat, CV_SVD_MODIFY_A);
    où A, V et S sont des tableaux de double alloués avec cvAlloc dont les tailles correspondent à celles entrées pour la création de CvMat (nb_pts=16 dans mon travail du moment).
    A contient des coordonnées sous la forme suivante :
    A_i = [x_i, y_i, x_i', y_i']
    où (x,y) sont les coordonnées d'un point dans l'image 1 et (x',y') celles du point correspondant dans l'image 2. En voici un exemple :

    0.4550 0.1182 0.4543 0.1185
    -1.7094 1.1855 -1.7093 1.1856
    -1.7154 0.1454 -1.7157 0.1452
    0.4037 0.1705 0.4039 0.1711
    0.8219 -0.9531 0.8215 -0.9528
    0.3991 0.1175 0.3991 0.1175
    0.6858 -0.9501 0.6853 -0.9504
    0.3883 1.2441 0.3877 1.2450
    0.4021 -0.9547 0.4027 -0.9550
    1.0180 -0.9437 1.0182 -0.9430
    1.0117 1.2412 1.0119 1.2414
    0.4032 -0.9021 0.4032 -0.9021
    -1.6643 0.1454 -1.6646 0.1458
    0.3859 1.1893 0.3876 1.1883
    -1.6869 -0.8909 -1.6870 -0.8909
    0.4012 0.0374 0.4010 0.0356

    Matlab donne, pour les valeurs singulières :

    5.76 4.61 0.002 0.001

    Alors que cvSVD donne :

    8046.48 9.83e-5 0 0

    Merci d'avance pour vos lumières car je ne vois vraiment pas le problème...

    Gus

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Par défaut Le problème venait du formatage des données
    J'ai finalement trouvé le problème qui est lié au fait que je sois débutant avec OpenCV.
    Avant que je ne trouve la solution, je stockais mes données dans des tableau 2D (aussi bien pour la matrice à décomposer que pour les matrices de valeurs et vecteurs singuliers) alors qu'en fait, les structures CvMat utilisent des données 1D formattée selon les paramètres passés à cvMat, à savoir la largeur et la hauteur de la matrice et le type de données utilisé.
    Un autre problème était lié au format des données car je pensais à tort que le type CV_32FC1 correspondait à double alors qu'il correspondait à float.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Résultat aberrant avec deux fonctions SI imbriquées
    Par bolide7 dans le forum Excel
    Réponses: 23
    Dernier message: 30/12/2014, 09h59
  2. Réponses: 2
    Dernier message: 22/09/2011, 10h28
  3. [W3C] Résultats différents avec IE ou FF
    Par Linoa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 17/11/2005, 13h45
  4. Résultat étrange avec les lumières.
    Par MaxPayne dans le forum OpenGL
    Réponses: 4
    Dernier message: 12/04/2005, 18h04
  5. Réponses: 5
    Dernier message: 19/11/2004, 19h16

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