2 votes

Problèmes d'extraction de contourArea opencv (Python)

Je suis en train d'essayer d'obtenir la plus grande zone dans une image avec OpenCV et Python, voici le code :

#Chargement de l'image :
fuente=cv.LoadImage('train/fruit1.jpg')

#Conversion en niveaux de gris...
#Conversion en binaire...
#Application de la méthode de Canny...
#Dilatation des bords...

#Essai d'obtenir les contours :
storage = cv.CreateMemStorage(0)
contours = cv.FindContours(bordes, storage, cv.CV_RETR_EXTERNAL, cv.CV_CHAIN_APPROX_SIMPLE,(0,0))

#Traçage des contours...
contornoimg=cv.CreateImage(cv.GetSize(fuente),fuente.depth,1)
cv.DrawContours(contornoimg,contours,cv.Scalar(255),cv.Scalar(0),2,1,8,(0,0));
cv.SaveImage("train/contornos.png",contornoimg);

Si j'ouvre maintenant l'image "contornos.png", je peux voir différents contours, pas seulement un, comme je veux le contour le plus grand, je dois calculer le contour avec la plus grande zone

max_area = -1
best_cnt = None

for cnt in contours:
    area = cv.ContourArea(cnt,slice=cv.CV_WHOLE_SEQ)
    if area > max_area:
        max_area = area
        best_cnt = cnt

Mais lorsque j'exécute le fichier, j'obtiens ce message d'erreur :

cv.ContourArea(cnt,cv.CV_WHOLE_SEQ)->AttributeError: 'module' object has no attribute 'CV_WHOLE_SEQ'

Une aide ? Merci pour tout !

-1voto

Ramiel Points 1

J'utilise celui-ci:

import cv2

aire = cv2.contourArea(cnt)

Je l'ai trouvé ici: http://opencvpython.blogspot.ru/2012/04/contour-features.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X