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 :

Problème avec cvStereoRectifyUncalibrated


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Par défaut Problème avec cvStereoRectifyUncalibrated
    Apres cvStereoRectify j'ai encore un problème cette fois ci avec cvStereoRectifyUncalibrated

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    35
    36
    37
     
     
            CvSize size_ut = cvSize(640,480);
            CvMat* fundamental_ext =cvCreateMat(3,3,CV_64F);
    	CvMat* point_image_g   = (CvMat*)cvLoad( "point_image_g.xml" ); 
    	CvMat* point_image_d   = (CvMat*)cvLoad( "point_image_d.xml" );
     
            CvMat* homography_matrix_g = cvCreateMat(3,3,CV_64F);
    	CvMat* homography_matrix_d = cvCreateMat(3,3,CV_64F);
     
            //pour transformer mes deux matrices de points de float à double
    	double tabgauche[240][2];
    	double tabdroite[240][2];
    	int i,j;
    	double t,y;
    	for(i=0 ; i<240;i++){
    		for(j=0;j<2;j++){
    			t=cvmGet(point_image_g,i,j);
    			tabgauche[i][j]=t;
    			y=cvmGet(point_image_d,i,j);
    			tabdroite[i][j]=y;
    		}
    	}
    	cvInitMatHeader(point_image_new_g, 240, 2, CV_64F, tabgauche);
    	cvInitMatHeader(point_image_new_d, 240, 2, CV_64F, tabdroite);
     
     
    	cvSave("new_point_g.xml",point_image_new_g);
    	cvSave("new_point_d.xml",point_image_new_d);
     
     
            cvFindFundamentalMat(point_image_g,point_image_d,fundamental_ext);
    	cvSave( "fundamental_ext.xml",fundamental_ext);
     
     
     
    	cvStereoRectifyUncalibrated(point_image_new_g,point_image_new_d,fundamental_ext,size_ut,homography_matrix_g,homography_matrix_d);

    le programme compile bien et quand je l'execute il s'arrete à cvStereoRectifyUncalibrated et m'affiche dans la console ce message d'erreur :
    CV_ASSERT( CV_IS_MAT(_points1) && CV_IS_MAT(_points2) &&
    (_points1->rows == 1 || _points1->cols == 1) &&
    (_points2->rows == 1 || _points2->cols == 1) &&
    CV_ARE_SIZES_EQ(_points1, _points2) failed ) in cvStereoCalcHomographiesFromF file .\cvcalibration.cpp, line2477


    ça à l'air de venir d'un problème de taille de mes deux matrices de points pourtant elles font toutes les deux la même taille???

    Avez vous déja rencontré ce problème??
    Merci de votre aide

  2. #2
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    la déclaration des deux matrices donne quoi ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Par défaut
    Ah oui mince j'ai oublié de la mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CvMat* point_image_new_g = cvCreateMat(2,240,CV_64F);
    	CvMat* point_image_new_d = cvCreateMat(2,240,CV_64F);
    Mais quand je regarde le fichier xml elles sont bien remplis avec les valeurs de point_image_g et point_image_d mais en double...

    Merci de ton aide !

  4. #4
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CvMat* point_image_new_g ;
    CvMat* point_image_new_d ;
    déclare les juste comme ca, initmatheader devrait se charger du reste

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Par défaut
    Ok j'essaie merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Par défaut
    Aie apparament initMatHeader ne joue pas entièrement son role car j'obtiens l'erreur : Run-Time Check Failure #3 The variable 'point_image_new_g' is being used without being initialized

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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