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 cv::matchShapes


Sujet :

OpenCV

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Problème avec cv::matchShapes
    slt a tous ,
    j'essaye de matcher deux contours détectés a partir de segmentation et après avoir extrais les contours. quand je compile j'ai un message d'erreur qui apparais et je ne sais pas d'ou sa vient voila 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
     
    #include<opencv2\opencv.hpp>
    #include<opencv2\core\core.hpp>
     
     
    int main(){
    std::vector<std::vector<cv::Point>> contours1,contours2;
    	cv::Mat image1,image2;
    	cv::VideoCapture cap(0);
    	cap.read(image1);
    	cv::inRange(image1,cv::Scalar(15,30,0),cv::Scalar(145,255,255),image1);
    	image1.copyTo(image2);
    	cv::inRange(image2,cv::Scalar(15,30,0),cv::Scalar(145,255,255),image2);
    	cv::findContours(image1,contours1,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);
    	cv::findContours(image2,contours2,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);
    	cv::matchShapes(contours1,contours2,CV_CONTOURS_MATCH_I2,0);
    }
    et le message d'erreur et la console en fichier joint

    Mercii
    Images attachées Images attachées   

  2. #2
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    j'ai la meme erreur personne peut donner la reponse svp ??

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Points : 180
    Points
    180
    Par défaut
    Bonjour,

    Pour pouvoir répondre, il faudrait voir dans quelle fonction cette assertion est fausse.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 67
    Points
    67
    Par défaut
    Salut,

    Avec les infos données, je pense que c'est à cette ligne que le problème se pose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cv::matchShapes(contours1,contours2,CV_CONTOURS_MATCH_I2,0);
    contours1 et contours2 sont des vecteurs de contour, un contour étant un vecteur de point. Or, la fonction matchShapes prend en paramètre 2 contours. Il faut donc l'écrire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cv::matchShapes(contours1[0],contours2[0],CV_CONTOURS_MATCH_I2,0);
    pour comparer le premier contour trouvé pour chacune des images. Je n'ai pas testé cette correction, mais c'est la seule différence que je vois avec le source des tests que j'avais déjà fait sur cette fonction.

    Par ailleurs, le paramètre CV_RETR_EXTERNAL demandant à OpenCV de ne récupérer que les contours extérieurs, si chacune de tes images en comporte plusieurs, tu peux faire un matchShape pour chaque couple "contour image 1 - contour image 2" en itérant sur les vecteurs contours1 et contours2.

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