Bonjour,
je souhaite recevoir votre aide a propos du suivant :
j'ai suivie les étapes suivante pour calculer les moment d'une image:
1. Application de la méthode prédéfinis d'opencv : "findContours".
2.l'appel de la méthode prédéfinis d'opencv : "moments" dans la définition de ma méthode personnalisée "MomentsImage".
3. l'affichage du moment m00 de chaque contour i :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 vector<Moments> Image::MomentsImage(vector<vector<Point>> contours)//fonction qui calcul les moments d'une image { vector<Moments> mu(contours.size()); for (int i = 0; i < contours.size(); i++) { mu[i] = moments(contours[i], false); cout << "mu[" << i << "].m00=" << mu[i].m00 << endl; } return mu; }
4. lors de l’étape du calcul du centroide de chaque contour j'obtiens l'erreur suivante (-nan(ind)):
En cherchant sur le net j'ai trouver que l'erreur viens d'une division par 0 lors du calcul de centroide , mais je me demande est ce que ça ce passe bien le faite d’avoir un moment nulle pour un contour i ou il ne faut pas.
Quelle solution peut être pour ce problème ? est ce que d'essayer d'éliminer les contours qui donne un moment m00 nulle du calcul?
SVP aidez moi par vos propositions !
merci d'avance
Partager