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 :

Probleme d'utilisation de cvSVD


Sujet :

OpenCV

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Par défaut Probleme d'utilisation de cvSVD
    Bien le bonjour a tous ... je suis confronte a un probleme lors de lutilisation de cvSVD, en effet, celle-ci ne me donne pas les resultats escomptes ...

    J'utilise pour tester, l'exmple de svd sur wikipedia, et scilab pour confirmer les resultats ...

    voici mon code :


    int nbrpoints = 4;

    CvMat* A = cvCreateMat(nbrpoints,5,CV_64FC1);
    CvMat* U = cvCreateMat(nbrpoints,nbrpoints,CV_64FC1);
    CvMat* D = cvCreateMat(nbrpoints,5,CV_64FC1);
    CvMat* V = cvCreateMat(5,5,CV_64FC1);

    cvmSet(A,0,0,1 );
    cvmSet(A,0,1,0 );
    cvmSet(A,0,2,0 );
    cvmSet(A,0,3,0 );
    cvmSet(A,0,4,2 );

    cvmSet(A,1,0,0 );
    cvmSet(A,1,1,0 );
    cvmSet(A,1,2,3 );
    cvmSet(A,1,3,0 );
    cvmSet(A,1,4,0 );

    cvmSet(A,2,0,0 );
    cvmSet(A,2,1,0 );
    cvmSet(A,2,2,0 );
    cvmSet(A,2,3,0 );
    cvmSet(A,2,4,0 );

    cvmSet(A,3,0,0 );
    cvmSet(A,3,1,4 );
    cvmSet(A,3,2,0 );
    cvmSet(A,3,3,0 );
    cvmSet(A,3,4,0 );



    cvSVD(A, D, U, V, CV_SVD_V_T);


    j'ai comme resultats :

    D
    4.000000 0.000000 0.000000 0.000000 0.000000
    0.000000 3.000000 0.000000 0.000000 0.000000
    0.000000 0.000000 2.236068 0.000000 0.000000
    0.000000 0.000000 0.000000 0.000000 0.000000

    U
    0.000000 -0.000000 -1.000000 0.000000
    0.000000 -1.000000 -0.000000 0.000000
    0.000000 -0.000000 -0.000000 1.000000
    -1.000000 -0.000000 -0.000000 0.000000

    V
    -0.000000 -1.000000 0.000000 0.000000 0.000000
    -0.000000 0.000000 -1.000000 -0.000000 -0.000000
    -0.447214 -0.000000 -0.000000 -0.000000 -0.894427
    0.000000 0.000000 0.000000 -1.000000 0.000000
    -0.894427 -0.000000 0.000000 0.000000 0.447214



    Wikipedia donne comme resultats :

    U
    0 0 1 0
    0 1 0 0
    0 0 0 -1
    1 0 0 0

    V
    0 1 0 0 0
    0 0 1 0 0
    0.447 0 0 0 0.894
    0 0 0 1 0
    -0.894 0 0 0 0.447

    D
    4 0 0 0
    0 3 0 0
    0 0 2.236 0


    Enfin Scilab me donne les resultats suivant :

    D
    4 0 0 0
    0 3 0 0
    0 0 2.236 0

    U
    0 0 1 0
    0 1 0 0
    0 0 0 -1
    1 0 0 0

    V
    0 0 0.447 0 -0.894
    1 0 0 0 0
    0 1 0 0 0
    0 0 0 1 0
    0 0 -0.894 0 0.447






    Je n'y connais tellement rien en svd ... si quelqu'un a la moindre petite idee d'ou peut prevenir mon probleme ... bah ... trop cool

  2. #2
    Membre expérimenté Avatar de Vinsss84
    Profil pro
    Inscrit en
    Février 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 175
    Par défaut
    http://en.wikipedia.org/wiki/Singula..._decomposition

    A mon sens la decomposition n'est pas unique, elle depend de la base dans laquelle tu te places :
    The matrix U contains a set of orthonormal "output" basis vector directions for M
    Ici ta base, "U" est dans le "sens" inverse par rapport au resultats donnés par wiki. PAs d'incohérence à mon avis dans tes résultats, il te suffit si tu veux de multiplier tes matrices par K = -1

    Cela dit rien à voir avec OpenCv la

    ou alors tout simplement :

    [1 0 0 0] [-1 0 0 0 ]
    [0 1 0 0] = -1* [0 -1 0 0 ]
    [0 0 1 0] [0 0 -1 0]
    [0 0 0 1] [0 0 0 -1]

    Fin bon après peut être que je cible mal le problème

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/01/2007, 21h51
  2. Probleme d utilisation de template dans le cpp
    Par Math75 dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2005, 16h26
  3. [Système][Environnement] Problème d'utilisation?!?
    Par waldo2188 dans le forum Général Java
    Réponses: 5
    Dernier message: 23/03/2005, 17h18
  4. Probleme d'utilisation de directX 9 avec visual studio.net
    Par cranedoeuf dans le forum DirectX
    Réponses: 1
    Dernier message: 24/05/2004, 04h33
  5. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 18h21

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